Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Описание [ править ]

Позволять

- квадратная система из n линейных уравнений, где:

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

Затем решение итеративно получается через

где - k- е приближение или итерация, а - следующая или k + 1 итерация . Таким образом, формула на основе элементов:

Для вычисления требуется каждый элемент в x ( k ), кроме самого себя. В отличие от метода Гаусса-Зейделя , мы не можем переписать с , так как это значение будет необходимо в остальной части вычисления. Минимальный объем памяти - два вектора размера n .

Алгоритм [ править ]

Вход:  начальное предположение решения , (диагональная доминантная) матрица , вектор правой части , критерий сходимости. Выход: решение при достижении сходимости. Комментарии: псевдокод, основанный на приведенной выше формуле на основе элементов.  в то время как сходимость не достигнута не делать  для I: = 1 шаг до п сделать  для J: = 1 шаг , пока п не делать , если J ≠ я тогда положить конец конец конец конец        

Конвергенция [ править ]

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

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

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

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

Примеры [ править ]

Пример 1 [ править ]

Линейная система вида с начальной оценкой дается формулой

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

мы определяем как

Далее находится как

Имея и рассчитав, мы оцениваем как :

Следующая итерация дает

Этот процесс повторяется до схождения (т. Е. До тех пор, пока не станет маленьким). Решение после 25 итераций:

Пример 2 [ править ]

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

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

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

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

Пример Python [ править ]

импортировать  numpy  как  npITERATION_LIMIT  =  1000# инициализируем матрицуА  =  np . массив ([[ 10. ,  - 1. ,  2. ,  0. ], [ - 1. ,  11. ,  - 1. ,  3. ], [ 2. ,  - 1. ,  10. ,  - 1. ], [ 0.0 ,  3. ,  - 1. ,  8. ]])# инициализировать вектор RHSб  =  нп . массив ([ 6. ,  25. ,  - 11. ,  15. ])# печатает системуprint ( "Система:" )для  я  в  диапазоне ( A . формы [ 0 ]): row  =  [ " {} * x {} " . Формат ( [ я , J ], J + 1 ) для J в диапазоне ( . форма [ 1 ])]         print ( "+" . join ( строка ),  "=" ,  b [ i ])печать ()х  =  нп . zeros_like ( b )для  it_count  в  диапазоне ( ITERATION_LIMIT ): если  it_count  ! =  0 : print ( "Итерация {0} : {1} " . format ( it_count ,  x )) x_new  =  np . zeros_like ( x ) для  я  в  диапазоне ( A . формы [ 0 ]): s1  =  np . Точка ( [ я , : я ], х [: я ])   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 ]: перемена если  нп . allclose ( x ,  x_new ,  atol = 1e-10 ,  rtol = 0. ): перемена x  =  x_newprint ( "Решение:" )печать ( х )ошибка  =  нп . точка ( A ,  x )  -  bprint ( "Ошибка:" )печать ( ошибка )

Взвешенный метод Якоби [ править ]

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

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

.

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

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

Позвольте быть итерационной матрицей. Тогда сходимость гарантирована для

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

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

где - номер обусловленности матрицы .

См. Также [ править ]

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Эта статья включает текст из статьи Jacobi_method на CFD-Wiki , находящейся под лицензией GFDL .
  • Блэк, Ноэль; Мур, Ширли и Вайсштейн, Эрик В. «Метод Якоби» . MathWorld .
  • Метод Якоби с сайта www.math-linux.com