2.2.Программа решения систем линейных уравнений по методу Зейделя
2.2.1. Постановка задачи. Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами вида
a11x1+ a12x2 + … + a1nxn = b1 ,
a21x2+ a22x2 + … + a2nxn = b2,
. . . . . . . . . . . . .
an1x1 + an2x2+ … + annxn = bn
для n≤ 10 по методу Зейделя.
2.2.2.Тестовый пример.
4,1x1+ 0,1x2+ 0,2x3 + 0,2x4 = 21,14 ,
0,3x1 + 5,3x2 + 0,9x3– 0,1x4 = – 17,82 ,
0,2x1 + 0,3x2 + 3,2x3+ 0,2x4 = 9,02 ,
0,1x1 + 0,1x2 + 0,2x3– 9,1x4 = 17,08 ,
x1 = 5,2, x2 = –4,2, x3 = 3, x4 = –1,8.
2.2.3. Итерационные методы решения систем линейных алгебраических уравнений
К численным методам линейной алгебры относятся численные методы решения систем линейных алгебраических уравнений. Методы решения СЛАУ разбиваются на две группы. К первой группе принадлежат так называемые точные или прямые методы - алгоритм, позволяющий получить решение системы за конечное число арифметических действий. Вторую группу составляют приближенные методы, в частности итерационные методы решения СЛАУ.
2.3 Метод простой итерации.
Описание метода
Рассмотрим СЛАУ вида
Ax = B, где А - матрица. (1)
A = {aij}i, j = 1…n
B = {bi}x = {xi}
Если эту систему удалось привести к виду x = Cx + D, то можно построить итерационную процедуру
xk = Cxk-1 + D
xk → x*, где х* - решение заданной системы.
В конечном варианте система будет имееть вид:
Решение систем линейных алгебраических уравнений методом Гаусса и Зейделя.
Заметим, что B = B1 + B2 и поэтому решение x исходной системы удовлетворяет равенству
x= B1x + B2 x +c .
Выберем начальное приближение x(0)= [x1(0), x2(0),…, xn(0)]T. Подставляя его в правую часть равенства при верхней треугольной матрице B2ивычисляя полученное выражение, находим первое приближение
x(1)= B1x(0) + B2x(1)
Подставляя приближение x(1), получим
x(2)= B1x(1) + B2x(2)
Продолжая этот процесс далее, получим последовательность x(0),x(1),…, x(n), … приближений к вычисляемых по формуле
x(k+1)= B1(k+1) + B2(k) + c
или в развернутой форме записи
x1(k+1) = b12x2(k) + b13x2(k)+ … + b1nxn(k) + c1 ,
x2(k+1) = b21x1(k+1) + b23x3(k)+ … + b2nxn(k) + c2 ,
x3(k+1) = b31x1(k+1) + b32x2(k+1)+ … + b3nxn(k)+ c3,
. . . . . . . . . . . . . . . . . . . . . . . . . .
xn(k+1) = bn1x1(k+1) + bn2x2(k+1) + bn3x3(k+1) + … + cn .
Объединив приведение системы к виду, удобному для итераций и метод Зейделя в одну формулу, получим
xi(k+1)= xi(k) – aii–1(∑j=1i–1aijxj(k+1) + ∑j=1naijxi(k) – bi).
Тогда достаточным условием сходимости метода Зейделя будет
∑j=1, j≠i n | aij | < | aii |
(условие доминированния диагонали).
Метод Зейделя иногда называют также методом Гаусса-Зейделя, процессом Либмана, методом последовательных замещений.
Условием сходимости для матрицы С выполняется, если сумма модулей коэффициентов меньше единицы по строкам или по столбцам, т.е.
, или .
Необходимо, чтобы диагональные элементы матрицы А были ненулевыми.
Для преобразования системы можно выполнить следующие операции:
x1=a11-1 (c1-a12x2 - a13x3-… - a1nxn)
x2=a22-1 (c2-a21x2 - a23x3-… - a2nxn)
………………………. .
xn=ann-1 (cn-an1x2 - an3x3-… - an-1nxn-1)
В результате получим систему:
x1=0+ c12x2+ c13x3-…+ c1n-1xn-1+ c1nxn+d1
x2= c21x2+0 +c23x3+…+ c2n-1xn-1+ c2nxn+d2
………………………………………………………. .
xn= cn1x1+ cn2x2 +cn3x3+…+ cnn-1xn-1+ 0+dn
В ней на главной диагонали матрицы С находятся нулевые элементы, остальные элементы выражаются по формулам:
сij=-aij/aii, di=ci/aii (i,j=1,2,3…n, i<>j)
Итерационный процесс продолжается до тех пор, пока значения х1 (k), х2 (k), х3 (k) не станут близкими с заданной погрешностью к значениям х1 (k-1), х2 (k-1), х3 (k-1).
Do'stlaringiz bilan baham: |