Метод Якоби - Jacobi method

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

Описание

Позволять

быть квадратной системой п линейные уравнения, где:

потом А можно разложить на диагональ компонент D, нижняя треугольная часть L и верхняя треугольная часть U:

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

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

Расчет требует каждый элемент в Икс(k) кроме себя. в отличие от Метод Гаусса – Зейделя, мы не можем перезаписать с , так как это значение потребуется для остальной части вычислений. Минимальный объем памяти - два вектора размера п.

Алгоритм

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

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

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

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

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

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

Примеры

Пример 1

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

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

мы определяем в качестве

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

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

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

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

Пример 2

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

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

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

0.62.27272-1.11.875
1.047271.7159-0.805220.88522
0.932632.05330-1.04931.13088
1.015191.95369-0.96810.97384
0.988992.0114-1.01021.02135

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

Пример 3 с использованием Python и NumPy

Следующая численная процедура просто выполняет итерацию для получения вектора решения.

def Якоби(А, б, x_init, эпсилон=1e-10, max_iterations=500):    D = нп.диагональ(нп.диагональ(А))    LU = А - D    Икс = x_init    D_inv = нп.диагональ(1 / нп.диагональ(D))    за я в классифицировать(max_iterations):        x_new = нп.точка(D_inv, б - нп.точка(LU, Икс))        если нп.линалг.норма(x_new - Икс) < эпсилон:            возвращаться x_new        Икс = x_new    возвращаться Икс# проблемные данныеА = нп.множество([    [5, 2, 1, 1],    [2, 6, 2, 1],    [1, 2, 7, 1],    [1, 1, 2, 8]])б = нп.множество([29, 31, 26, 19])# вы можете выбрать любой начальный векторx_init = нп.нули(len(б))Икс = Якоби(А, б, x_init)Распечатать("Икс:", Икс)Распечатать("вычисленный b:", нп.точка(А, Икс))Распечатать("реальный б:", б)

Производит вывод:

x: [3.99275362 2.95410628 2.16183575 0.96618357] вычислено b: [29. 31. 26. 19.] реальный b: [29 31 26 19]

Весовой метод Якоби

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

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

.

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

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

Позволять - матрица итераций, тогда сходимость гарантирована для

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

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

куда это номер условия матрицы.

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

Рекомендации

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

внешняя ссылка

  • Эта статья включает текст из статьи Jacobi_method на CFD-Wiki что находится под GFDL лицензия.