Википедия

Метод Якоби

Метод Якоби — разновидность метода простой итерации для численного решения системы линейных алгебраических уравнений. Назван в честь Карла Густава Якоби.

Описание метода

Пусть требуется численно решить систему линейных уравнений:

image

Предполагается, что image (иначе метод Якоби неприменим). Выразим image через первое уравнение, image — через второе и т. д.:

image

В методе Якоби последовательность приближений image строится следующим образом. Выбирается первое приближение image, формула для остальных приближений имеет вид

image.

В матричной форме имеет следующий вид. Пусть СЛАУ в матричной форме записано как

image

Представим матрицу image в виде image, где image означает диагональную матрицу, у которой на главной диагонали стоят соответствующие элементы матрицы image; тогда как матрицы image и image содержат верхнюю и нижнюю треугольные части image, на главной диагонали которых нули. Тогда итерационную формулу можно записать как

image

Сходимость

Приведем достаточное условие сходимости метода.

image Теорема.
Пусть image. Тогда при любом выборе начального приближения image:
  1. метод сходится;
  2. скорость сходимости метода равна скорости сходимости геометрической прогрессии со знаменателем image;
  3. верна оценка погрешности: image.

Условие остановки

Условие окончания итерационного процесса при достижении точности image имеет вид:

image

Для достаточно хорошо обусловленной матрицы image (при image) оно выполняется при

image

Данный критерий не требует вычисления нормы матрицы и часто используется на практике. При этом точное условие окончания итерационного процесса имеет вид

image

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

Сравнение с другими методами

В отличие от метода Гаусса-Зейделя мы не можем заменять image на image в процессе итерационной процедуры, так как эти значения понадобятся для остальных вычислений. Это наиболее значимое различие между методом Якоби и методом Гаусса-Зейделя решения СЛАУ. Таким образом на каждой итерации придётся хранить оба вектора приближений: старый и новый.

Реализация

Ниже приведён алгоритм реализации на C++

#include <cmath> const double eps = 0.001; ///< желаемая точность  // .......................... /// N - размерность матрицы; A[N][N] - матрица коэффициентов, F[N] - столбец свободных членов, /// X[N] - начальное приближение, ответ записывается также в X[N]; void Jacobi (int N, double** A, double* F, double* X) { double* TempX = new double[N]; double norm; // норма, определяемая как наибольшая разность компонент столбца иксов соседних итераций. do { for (int i = 0; i < N; i++) { TempX[i] = F[i]; for (int g = 0; g < N; g++) { if (i != g) TempX[i] -= A[i][g] * X[g]; } TempX[i] /= A[i][i]; }  norm = fabs(X[0] - TempX[0]); for (int h = 0; h < N; h++) { if (fabs(X[h] - TempX[h]) > norm) norm = fabs(X[h] - TempX[h]); X[h] = TempX[h]; } } while (norm > eps); delete[] TempX; } 

Ниже приведен алгоритм реализации на Python

from collections.abc import Sequence, MutableSequence def Jacobi( A: Sequence[Sequence[float]], b: Sequence[float], eps: float = 0.001, x_init: MutableSequence[float] | None = None) -> list[float]:  """  метод Якоби для A*x = b (*)  :param A: Матрица (*) слева  :param b: известный вектор (*) справа  :param x_init: начальное приближение  :return: приблизительное значения х (*)  """ def sum(a: Sequence[float], x: Sequence[float], j: int) -> float: S: float = 0 for i, (m, y) in enumerate(zip(a, x)): if i != j: S += m*y return S def norm(x: Sequence[float], y: Sequence[float]) -> float: return max((abs(x0-y0) for x0, y0 in zip(x, y))) if x_init is None: y = [a/A[i][i] for i, a in enumerate(b)] else: y = x.copy() x: list[float] = [-(sum(a, y, i) - b[i])/A[i][i] for i, a in enumerate(A)] while norm(y, x) > eps: for i, elem in enumerate(x): y[i] = elem for i, a in enumerate(A): x[i] = -(sum(a, y, i) - b[i])/A[i][i] return x 

Примечания

Литература

  • Березин, И. С., Жидков Н. П. Методы вычислений. — М.: Физматлит, 1959. — Т. II.

См. также

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Метод Якоби, Что такое Метод Якоби? Что означает Метод Якоби?

Eta statya o metode resheniya sistem linejnyh algebraicheskih uravnenij Ob iteracionnom algoritme nahozhdeniya sobstvennyh znachenij sm metod Yakobi dlya sobstvennyh znachenij Termin Yakobi imeet takzhe drugie znacheniya Metod Yakobi raznovidnost metoda prostoj iteracii dlya chislennogo resheniya sistemy linejnyh algebraicheskih uravnenij Nazvan v chest Karla Gustava Yakobi Opisanie metodaPust trebuetsya chislenno reshit sistemu linejnyh uravnenij a11x1 a1nxn b1 an1x1 annxn bn displaystyle left begin array rcl a 11 x 1 ldots a 1n x n amp amp b 1 ldots a n1 x 1 ldots a nn x n amp amp b n end array right Predpolagaetsya chto aii 0 i 1 n displaystyle a ii neq 0 i in 1 ldots n inache metod Yakobi neprimenim Vyrazim x1 displaystyle x 1 cherez pervoe uravnenie x2 displaystyle x 2 cherez vtoroe i t d x1 1a11 b1 a12x2 a1nxn xn 1ann bn an1x1 an n 1 xn 1 displaystyle left begin array rcl x 1 amp dfrac 1 a 11 left b 1 a 12 x 2 ldots a 1n x n right ldots x n amp dfrac 1 a nn left b n a n1 x 1 ldots a n n 1 x n 1 right end array right V metode Yakobi posledovatelnost priblizhenij x k displaystyle x k stroitsya sleduyushim obrazom Vybiraetsya pervoe priblizhenie x 0 displaystyle x 0 formula dlya ostalnyh priblizhenij imeet vid x1 k 1 1a11 b1 a12x2 k a1nxn k xn k 1 1ann bn an1x1 k an n 1 xn 1 k displaystyle begin array rcl x 1 k 1 amp dfrac 1 a 11 left b 1 a 12 x 2 k ldots a 1n x n k right ldots x n k 1 amp dfrac 1 a nn left b n a n1 x 1 k ldots a n n 1 x n 1 k right end array V matrichnoj forme imeet sleduyushij vid Pust SLAU v matrichnoj forme zapisano kak Ax b displaystyle Ax b Predstavim matricu A displaystyle A v vide A L D U displaystyle A L D U gde D displaystyle D oznachaet diagonalnuyu matricu u kotoroj na glavnoj diagonali stoyat sootvetstvuyushie elementy matricy A displaystyle A togda kak matricy U displaystyle U i L displaystyle L soderzhat verhnyuyu i nizhnyuyu treugolnye chasti A displaystyle A na glavnoj diagonali kotoryh nuli Togda iteracionnuyu formulu mozhno zapisat kak x k 1 D 1 b L U x k displaystyle x k 1 D 1 b L U x k ShodimostPrivedem dostatochnoe uslovie shodimosti metoda Teorema Pust B lt 1 displaystyle B lt 1 Togda pri lyubom vybore nachalnogo priblizheniya x 0 displaystyle vec x 0 metod shoditsya skorost shodimosti metoda ravna skorosti shodimosti geometricheskoj progressii so znamenatelem q B displaystyle q B verna ocenka pogreshnosti x k x lt qk x 0 x displaystyle vec x k vec x lt q k vec x 0 vec x Uslovie ostanovkiUslovie okonchaniya iteracionnogo processa pri dostizhenii tochnosti e displaystyle varepsilon imeet vid x k 1 x k 1 qqe displaystyle parallel x k 1 x k parallel leq frac 1 q q varepsilon Dlya dostatochno horosho obuslovlennoj matricy B displaystyle B pri B q lt 1 2 displaystyle parallel B parallel q lt 1 2 ono vypolnyaetsya pri x k 1 x k e displaystyle parallel x k 1 x k parallel leq varepsilon Dannyj kriterij ne trebuet vychisleniya normy matricy i chasto ispolzuetsya na praktike Pri etom tochnoe uslovie okonchaniya iteracionnogo processa imeet vid Ax k b e displaystyle parallel Ax k b parallel leq varepsilon i trebuet dopolnitelnogo umnozheniya matricy na vektor na kazhdoj iteracii chto primerno v dva raza uvelichivaet vychislitelnuyu slozhnost algoritma Sravnenie s drugimi metodamiV otlichie ot metoda Gaussa Zejdelya my ne mozhem zamenyat xi k displaystyle x i k na xi k 1 displaystyle x i k 1 v processe iteracionnoj procedury tak kak eti znacheniya ponadobyatsya dlya ostalnyh vychislenij Eto naibolee znachimoe razlichie mezhdu metodom Yakobi i metodom Gaussa Zejdelya resheniya SLAU Takim obrazom na kazhdoj iteracii pridyotsya hranit oba vektora priblizhenij staryj i novyj RealizaciyaNizhe privedyon algoritm realizacii na C include lt cmath gt const double eps 0 001 lt zhelaemaya tochnost N razmernost matricy A N N matrica koefficientov F N stolbec svobodnyh chlenov X N nachalnoe priblizhenie otvet zapisyvaetsya takzhe v X N void Jacobi int N double A double F double X double TempX new double N double norm norma opredelyaemaya kak naibolshaya raznost komponent stolbca iksov sosednih iteracij do for int i 0 i lt N i TempX i F i for int g 0 g lt N g if i g TempX i A i g X g TempX i A i i norm fabs X 0 TempX 0 for int h 0 h lt N h if fabs X h TempX h gt norm norm fabs X h TempX h X h TempX h while norm gt eps delete TempX Nizhe priveden algoritm realizacii na Pythonfrom collections abc import Sequence MutableSequence def Jacobi A Sequence Sequence float b Sequence float eps float 0 001 x init MutableSequence float None None gt list float metod Yakobi dlya A x b param A Matrica sleva param b izvestnyj vektor sprava param x init nachalnoe priblizhenie return priblizitelnoe znacheniya h def sum a Sequence float x Sequence float j int gt float S float 0 for i m y in enumerate zip a x if i j S m y return S def norm x Sequence float y Sequence float gt float return max abs x0 y0 for x0 y0 in zip x y if x init is None y a A i i for i a in enumerate b else y x copy x list float sum a y i b i A i i for i a in enumerate A while norm y x gt eps for i elem in enumerate x y i elem for i a in enumerate A x i sum a y i b i A i i return xPrimechaniyaBerezin Zhidkov 1959 s 57 LiteraturaBerezin I S Zhidkov N P Metody vychislenij rus M Fizmatlit 1959 T II Sm takzheMetod Metod Gaussa ZejdelyaU etoj stati po matematike est neskolko problem pomogite ih ispravit V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 16 maya 2010 Pozhalujsta posle ispravleniya problemy isklyuchite eyo iz spiska parametrov Posle ustraneniya vseh nedostatkov etot shablon mozhet byt udalyon lyubym uchastnikom

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто