LEC-28 (Материалы к лекциям), страница 2
Описание файла
Файл "LEC-28" внутри архива находится в следующих папках: Материалы к лекциям, Lecturessemestr7. Документ из архива "Материалы к лекциям", который расположен в категории "". Всё это находится в предмете "методы решения задач механики сплошных сред" из 7 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "методы решения задач механики сплошных сред" в общих файлах.
Онлайн просмотр документа "LEC-28"
Текст 2 страницы из документа "LEC-28"
Над каждым элементом аij выполняется самое большое 2n2 арифметических операций, поэтому С=n2 - самое большое значение, которое следует рассматривать. Вообще C=n достаточно надежный выбор.
Подведем итоги:
-
Вычисления более устойчивы (менее чувствительны к изменениям), если все элементы матрицы приблизительно одинаковы.
-
Не известны способы масштабирования матриц в общем случае, и существуют матрицы, которые не могут быть удовлетворительно масштабированы.
-
На практике обычно масштабируют строки (делением каждого уравнения на его наибольший коэффициент). Это достаточно надежный способ для обычно встречающихся задач.
-
Для получения LU - разложения исключением Гаусса требуется порядка операций сложения и умножения.
Теперь обратимся к методу Холесского - симметричному варианту Гауссова исключения для симметричных положительно определенных матриц.
Предположим, что система уравнений, которую нужно решить есть
Ax=b, где А - NN симметричная положительно определенная матрица коэффициентов,
b - вектор длины N, называемый правой частью, а
х - вектор длины N, компоненты которого нужно вычислить.
Применения к А метода Холесского приводит к треугольному разложению
А=L LT, где L - нижняя треугольная матрица с положительными диагональными элементами.
Верхний индекс Т указывает на операцию транспонирования.
Таким образом имеем: L LT х=b
Замена y= LTх показывает, что х можно получить, решая треугольные системы:
Ly=b
LT х=b
Поскольку L - треугольная матрица, то строка K может содержать ненулевые элементы только в первых K столбцах.
В частности, первая строка L содержит только один ненулевой элемент, так, что первая компонента y может быть легко вычислена. Вторая строка L содержит только два ненулевых элемента, следовательно, она связывает только две первые компоненты y; но так как первая компонента y известна, то теперь может быть вычислена и вторая. Таким образом, решаем систему уравнений относительно y.
Далее, поскольку матрица LТ также треугольная, аналогичный процесс используется для отыскания х из второго уравнения, только теперь требуется обратный порядок операций, так как - LТ верхняя, а не нижняя треугольная матрица.
Рассмотрим сначала случай 22 матрицы
Потребуем, чтобы А=L LT
a11=l112; a12=l11l21; a21=l21l11; a22=l212+ l222
В силу положительной определенности матрицы А, элемент a11>0 и извлечение квадратного корня l11= возможно.
Второй элемент определяется из уравнения для a21 (который равен a12, т.к. А - симметричная матрица).
Наконец, l22 определяется из равенства :
Алгоритм разложения Холесского для симметричной матрицы:
Цикл по столбцам А
For K=1 to n do
Вычисление очередного вектора-строки, кроме диагонального элемента.
For i=1 to K-1 do
Конец цикла по i.
Вычисление диагонального элемента
Конец цикла по К.
Теперь множитель L расположен в нижнем треугольнике матрицы А.
Этот алгоритм может быть сделан более устойчивым заменой оператора, содержащего квадратный корень, следующим оператором:
Это позволит избежать останова программы, когда элемент близок к нулю или точно равен нулю и ошибки округления случайно делают t отрицательным.
12.2. Проблема упорядочения
Вернёмся к примеру 2 решения системы уравнения методом Гаусса.
Обращает на себя внимание тот факт, что в процессе разложения матрица может претерпевать заполнение (на месте нулевых элементов матрицы появляются ненулевые элементы).
Для иллюстрации подобной проблемы в методе Холесского в качестве примера рассмотрим задачу:
Множитель Холесского для матрицы коэффициентов системы выглядит так:
Решая систему Ly=b, получаем: y=
Затем, решая систему LTX=y, находим: X=
Этот пример иллюстрирует наиболее важный факт, относящийся к применению метода Холесского для разреженной матрицы А: матрица обычно претерпевает заполнение.
Это значит, что L имеет ненулевые элементы в позициях, где в нижней треугольной части А стояли нули.
Предположим теперь, что мы перенумеровали переменные в соответствии с правилом
и переупорядочим уравнения так, чтобы последнее стало первым, второе снизу - вторым сверху и так далее, пока наконец бывшее первое уравнение не станет последним. Мы получим тогда эквивалентную систему уравнений:
Должно быть ясно, что эта перенумерация переменных и переупорядочение уравнений равносильны симметричной перестановке строк и столбцов А, причем та же перестановка применяется к b.
Эту новую систему обозначим через
Применяя к ней , как и прежде, метод Холесского, мы разложим А в произведение , где (с точностью до 3-х значащих цифр)
Решая Ly=b и LTx=y, получим решение x , которое есть всего лишь переупорядоченная форма вектора х.
Важнейший момент состоит в том, что переупорядочение уравнений и переменных привело к треугольному множителю , который разрежен в точности в той мере, что и нижний треугольник А.
Для большинства задач с разреженными матрицами разумное упорядочение строк и столбцов матрицы коэффициентов может дать огромное сокращение заполнения и, следовательно, экономию машинного времени и памяти.
Существуют три серьезных причины, по которым заполнение следует считать нежелательным явлением:
1. Необходимо отводить память для хранения возникших
ненулевых элементов. При этом степень заполнения может оказаться весьма значительной. Наиболее крайний пример, часто
цитируемый в литературе - это матрица с заполненными первой строкой,
первым столбцом и диагональю и остальными элементами, равными нулю: если выполнить исключение в первом столбце, то
все остальные позиции матрицы подвергнутся заполнению. Если
матрица А симметрична и положительно определена, то размеры
заполнения и позиции новых ненулевых элементов могут быть
определены до того, как фактически начнется исключение. Таким
образом, становится возможным заранее выделить необходимый
дополнительный объем памяти. Однако если матрица А незнако-
определена, то это не удается сделать, и проблема распределения
памяти существенно усложняется.
2.Время, затрачиваемое при выполнении факторизации на
компьютере, быстро увеличивается с ростом заполнения, так как приходится выполнять гораздо большее количество арифметических
операций. Обычно объем памяти и число операций вместе определяют, поддается ли вообще данная задача решению прямыми
методами. Круг задач, к которым применимы прямые методы, тесно
связан, таким образом, с нашей способностью сводить заполнение
к минимуму.
3. Границы ошибок увеличиваются вместе с ростом заполнения. Многие исследователи отмечают ключевую роль того факта, что каждый элемент матрицы А лишь несколько раз претерпевает изменение в процессе исключения, и поэтому чрезмерного накопления вычислительных ошибок не происходит. С другой стороны, сдерживание роста ошибок должно рассматриваться как одна из целей, преследуемых при разработке алгоритмов, уменьшающих заполнение; этой точке зрения уделяется недостаточно внимания в литературе по разреженным матрицам. Чрезмерное заполнение может повлечь за собой слишком сильное накопление вычислительных ошибок, что вынудит применить итерационный метод вместо прямого при решении системы линейных алгебраических уравнений большого размера.
К настоящему времени известно достаточно много об источниках возникновения заполнения и для его уменьшения разработаны эффективные процедуры. Все они основаны на использовании свободы в выборе главных элементов, которые в случае положительно определенной матрицы А могут выбираться на диагонали в любом порядке. Можно использовать другую интерпретацию этого подхода, согласно которой строки и столбцы матрицы А переупорядочиваются любым способом, сохраняющим симметрию, а затем производится исключение с выбором главных элементов на диагонали в естественном порядке. Хорошо известен тот факт, что размеры заполнения чрезвычайно существенно зависят от того, какая именно выбрана перестановка.
Так, если рассмотреть упомянутый выше «крайний» пример матрицы, все элементы которой равны нулю, кроме первой строки, первого столбца и диагонали, то при перестановке первого и последнего ее столбцов и первой и последней строк ненулевыми в полученной матрице будут последняя строка, последний столбец и диагональ, так что при исключении вообще не возникает ни одного нового ненулевого элемента.
Задача отыскания хорошего упорядочения, называемая в дальнейшем проблемой упорядочения, занимает центральное место при решении разреженных систем.
Говорят, что упорядочение является оптимальным в смысле заполнения, если оно приводит к наименьшему возможному заполнению. Упорядочение считается оптимальным в смысле затрат арифметических операций, если число операций, выполняемых при обработке переупорядоченной матрицы, минимально. Для матрицы А порядка п существует n! различных упорядочений, из которых одно или более оказывается оптимальным в смысле заполнения, и несколько упорядочений (не менее одного) оказываются оптимальными в смысле минимизации числа арифметических операций. Можно было бы пожелать найти такие оптимальные упорядочения, однако, к сожалению, задача их отыскания представляется чрезвычайно трудной и о существовании эффективных алгоритмов, пригодных для этой цели, не известно ничего. Существующие процедуры являются эвристическими и обычно основываются на попытках отыскания упорядочений, обеспечивающих понижение заполнения и числа арифметических операций, но не гарантирующих достижения точного минимума этих величин.