Jump to content

метод Якоби

(Перенаправлено из итерации Якоби )

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

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

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

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

Формула на основе матрицы [ править ]

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

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

Формула на основе элементов [ править ]

Формула на основе элементов для каждой строки таким образом:

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

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

Input: initial guess x(0) to the solution, (diagonal dominant) matrix A, right-hand side vector b, convergence criterion
Output: solution when convergence is reached
Comments: pseudocode based on the element-based formula above

k = 0
while convergence not reached do
    for i := 1 step until n do
        σ = 0
        for j := 1 step until n do
            if ji then
                σ = σ + aij xj(k)
            end
        end
        xi(k+1) = (biσ) / aii
    end
    increment k
end

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.6 2.27272 -1.1 1.875
1.04727 1.7159 -0.80522 0.88522
0.93263 2.05330 -1.0493 1.13088
1.01519 1.95369 -0.9681 0.97384
0.98899 2.0114 -1.0102 1.02135

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

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

import numpy as np

ITERATION_LIMIT = 1000

# initialize the matrix
A = np.array([[10., -1., 2., 0.],
              [-1., 11., -1., 3.],
              [2., -1., 10., -1.],
              [0.0, 3., -1., 8.]])
# initialize the RHS vector
b = np.array([6., 25., -11., 15.])

# prints the system
print("System:")
for i in range(A.shape[0]):
    row = [f"{A[i, j]}*x{j + 1}" for j in range(A.shape[1])]
    print(f'{" + ".join(row)} = {b[i]}')
print()

x = np.zeros_like(b)
for it_count in range(ITERATION_LIMIT):
    if it_count != 0:
        print(f"Iteration {it_count}: {x}")
    x_new = np.zeros_like(x)

    for i in range(A.shape[0]):
        s1 = np.dot(A[i, :i], x[:i])
        s2 = np.dot(A[i, i + 1:], x[i + 1:])
        x_new[i] = (b[i] - s1 - s2) / A[i, i]
        if x_new[i] == x_new[i-1]:
          break

    if np.allclose(x, x_new, atol=1e-10, rtol=0.):
        break

    x = x_new

print("Solution: ")
print(x)
error = np.dot(A, x) - b
print("Error:")
print(error)

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

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

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

.

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

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

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

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

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

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

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

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

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

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a6601fde848c41104d2415ee8f0a57d2__1713435960
URL1:https://arc.ask3.ru/arc/aa/a6/d2/a6601fde848c41104d2415ee8f0a57d2.html
Заголовок, (Title) документа по адресу, URL1:
Jacobi method - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)