stringtranslate.com

метод Якоби

В числовой линейной алгебре метод Якоби (он же метод итераций Якоби ) — это итерационный алгоритм для определения решений строго диагонально доминирующей системы линейных уравнений . Каждый диагональный элемент решается, и в него подставляется приближенное значение. Затем процесс повторяется до тех пор, пока не сойдется. Этот алгоритм представляет собой урезанную версию метода преобразования Якоби диагонализации матрицы . Метод назван в честь Карла Густава Якоба Якоби .

Описание

Пусть будет квадратной системой из n линейных уравнений, где:

Когда и известны, а неизвестно, мы можем использовать метод Якоби для аппроксимации . Вектор обозначает наше первоначальное предположение для (часто для ). Мы обозначаем как k -е приближение или итерацию , а является следующей (или k +1) итерацией .

Формула на основе матрицы

Тогда A можно разложить на диагональную составляющую D , нижнюю треугольную часть L и верхнюю треугольную часть U : Решение затем получается итеративно с помощью

Формула на основе элементов

Формула на основе элементов для каждой строки выглядит следующим образом: Вычисление требует каждый элемент из, за ​​исключением самого себя. В отличие от метода Гаусса–Зейделя , мы не можем перезаписать с помощью , так как это значение понадобится для остальной части вычисления. Минимальный объем памяти составляет два вектора размера n .

Алгоритм

Вход:  начальное приближение x (0) к решению , (диагональная доминирующая) матрица A , правый вектор b , критерий сходимости Выход:  решение при достижении сходимости Комментарии: псевдокод, основанный на приведенной выше формуле на основе элементовk = 0 пока сходимость не достигнута сделать  для  i  := 1 шаг до n сделать  σ = 0  для  j  := 1 шаг до n сделать  если  j i  тогда  σ = σ + a ij  x j ( k )  конец  конец  x i ( k +1) = ( b iσ ) / a ii  конец приращение k конец

Конвергенция

Стандартное условие сходимости (для любого итерационного метода) — когда спектральный радиус итерационной матрицы меньше 1:

Достаточным (но не необходимым) условием сходимости метода является то, что матрица A строго или неприводимо диагонально доминирует . Строгое диагональное доминирование строк означает, что для каждой строки абсолютное значение диагонального члена больше суммы абсолютных значений других членов:

Метод Якоби иногда сходится, даже если эти условия не выполняются.

Обратите внимание, что метод Якоби не сходится для каждой симметричной положительно определенной матрицы . Например,

Примеры

Пример вопроса

Линейная система вида с начальной оценкой задается выражением

Используем уравнение , описанное выше, для оценки . Сначала перепишем уравнение в более удобном виде , где и . Из известных значений определяем как Далее находится как При и вычисляется, оцениваем как : Следующая итерация дает Этот процесс повторяется до сходимости (т.е. пока не станет малым). Решение после 25 итераций имеет вид

Пример вопроса 2

Предположим, нам дана следующая линейная система:

Если мы выберем (0, 0, 0, 0) в качестве начального приближения, то первое приближенное решение будет иметь вид Используя полученные приближения, итерационная процедура повторяется до тех пор, пока не будет достигнута требуемая точность. Ниже приведены приближенные решения после пяти итераций.

Точное решение системы: (1, 2, −1, 1) .

Пример на Python

импортировать  numpy  как  npПРЕДЕЛ_ИТЕРАЦИИ  =  1000# инициализируем матрицуA  =  np . массив ([[ 10. ,  - 1. ,  2. ,  0. ], [ - 1. ,  11. ,  - 1. ,  3. ], [ 2. ,  - 1. ,  10. ,  - 1. ], [ 0.0 ,  3. ,  - 1. ,  8. ]])# инициализируем вектор RHSb  =  np . массив ([ 6. ,  25. ,  - 11. ,  15. ])# печатает системупечать ( "Система:" )для  i  в  диапазоне ( A . shape [ 0 ]): row  =  [ f " { A [ i , j ] } *x { j + 1 } " для j в диапазоне ( A . shape [ 1 ])]        print ( f ' { "+" . join ( row ) } = { b [ i ] } ' )печать ()x  =  np . zeros_like ( b )для  it_count  в  диапазоне ( ITERATION_LIMIT ): если  it_count  !=  0 : print ( f "Итерация { it_count } : { x } " ) x_new  =  np . zeros_like ( x ) для  i  в  диапазоне ( A . shape [ 0 ]): s1  =  np . точка ( A [ i ,  : i ],  x [: i ]) s2  =  np . точка ( A [ i ,  i  +  1 :],  x [ i  +  1 :]) x_new [ i ]  =  ( b [ i ]  -  s1  -  s2 )  /  A [ i ,  i ] если  x_new [ i ]  ==  x_new [ i - 1 ]: перерыв если  np.allclose ( x , x_new , atol = 1e- 10 , rtol = 0. ) :    перерыв х  =  х_новыйпечать ( "Решение: " )печать ( х )ошибка  =  np . точка ( A ,  x )  -  bпечать ( "Ошибка:" )печать ( ошибка )

Метод взвешенного Якоби

Взвешенная итерация Якоби использует параметр для вычисления итерации как

с обычным выбором. [1] Из соотношения это также можно выразить как

.

Сходимость в симметричном положительно определенном случае

В случае, если матрица системы имеет симметричный положительно-определенный тип, можно показать сходимость.

Пусть — матрица итераций. Тогда сходимость гарантируется для

где — максимальное собственное значение.

Спектральный радиус можно минимизировать для конкретного выбора следующим образом, где — число обусловленности матрицы .

Смотрите также

Ссылки

  1. ^ Саад, Юсеф (2003). Итерационные методы для разреженных линейных систем (2-е изд.). SIAM . стр. 414. ISBN 0898715342.

Внешние ссылки