Процесс итерации Якоби иногда можно модифицировать для ускорения сходимости.
Отметим, что итеративный процесс Якоби производит три последовательности – {х1(k)}, {х2(k)}, {х3(k)}, {х4(k)}. Кажется разумным, что х1(k+1) может быть использовано вместо х2(k). Аналогично х1(k+1) и х2(k+1) можно использовать в вычислении х3(k+1). Например, для уравнений из системы (1) это даст следующий вид итерационного процесса Гаусса-Зейделя, использующий (3*):
Такой итерационный процесс даст результаты:
k | х1(k) | х2(k) | х3(k) |
1.0 | 2.0 | 2.0 | |
1.75 | 3.75 | 2.95 | |
1.95 | 3.96875 | 2.98625 | |
1.995625 | 3.99609375 | 2.99903125 | |
… | … | … | … |
1.99999983 | 3.99999988 | 2.99999996 | |
1.99999998 | 3.99999999 | 3.0 | |
2.0 | 4.0 | 3.0 |
Т. е. к точному решению мы пришли уже на 10-ом шаге итерации, а не на 19, как в итерации Якоби.
Вывод.
1. Способ итераций дает возможность получить последовательность приближенных значений, сходящихся к точному решению системы. Для этого система приводится к виду (для случая системы из четырех уравнений):
Эти формулы как раз и задают собственно итерационный процесс.
2. При этом чтобы итерационный процесс сходился к точному решению, достаточно, чтобы все коэффициенты системы были малы по сравнению с диагональными.
Это условие можно сформулировать и более точно:
Для сходимости процесса итераций достаточно, чтобы в каждом столбце сумма отношений коэффициентов системы к диагональным элементам, взятым из той же строки, была строго меньше единицы:
3. Следует так же сказать, что итерационный процесс может проводиться как в виде итерации Якоби, так и в виде итерации Гаусса-Зейделя. В последнем случае сходимость итерационного процесса может существенно улучшиться.
II. Практическая часть.
Метод обратной матрицы.
Метод обратной матрицы | ||||||
x1 | x2 | x3 | x4 | |||
-4 | ||||||
A= | -4 | B= | ||||
-3 | -22 | -2 | ||||
-2 | -3 | |||||
0,083 | 0,013 | -0,002 | -0,023 | |||
A-1= | 0,016 | 0,048 | 0,009 | -0,011 | ||
-0,009 | 0,003 | -0,044 | 0,004 | |||
0,011 | 0,007 | 0,010 | 0,039 | |||
x= | 0,129 | |||||
0,165 | ||||||
0,097 | ||||||
0,186 |
Метод Крамера.
Метод Крамера | |||||||
x1 | x2 | x3 | x4 | ||||
-4 | |||||||
A= | -4 | B= | |||||
-3 | -22 | -2 | |||||
-2 | -3 | ||||||
'A'= | -134088 | ||||||
-4 | |||||||
A1= | |||||||
-2 | -22 | ||||||
-3 | |||||||
'A1'= | -17296 | x1= | 0,129 | ||||
A2= | -4 | ||||||
-3 | -2 | -22 | |||||
-2 | |||||||
'A2'= | -22188 | x2= | 0,165 | ||||
-4 | |||||||
A3= | -4 | ||||||
-3 | -2 | ||||||
-2 | -3 | ||||||
'A3'= | -12980 | x3= | 0,097 | ||||
-4 | |||||||
A4= | -4 | ||||||
-3 | -22 | -2 | |||||
-2 | -3 | ||||||
'A4'= | -24896 | x4= | 0,186 | ||||
x= | 0,129 | ||||||
0,165 | |||||||
0,097 | |||||||
0,186 |
Метод Гаусса.
Метод Гаусса | |||||||
x1 | x2 | x3 | x4 | ||||
-4 | |||||||
A= | -4 | B= | |||||
-3 | -22 | -2 | |||||
-2 | -3 | ||||||
'A'= | -134088 | ||||||
1,000 | -0,333 | 0,000 | 0,500 | 0,167 | |||
-4,000 | 21,000 | 5,000 | 3,000 | 4,000 | |||
-3,000 | 2,000 | -22,000 | 1,000 | -2,000 | |||
-2,000 | -3,000 | 5,000 | 23,000 | 4,000 | |||
1,000 | -0,333 | 0,000 | 0,500 | 0,167 | |||
0,000 | 25,333 | 5,000 | 5,000 | 4,667 | |||
0,000 | 1,000 | -22,000 | 2,500 | -1,500 | |||
0,000 | -3,667 | 5,000 | 24,000 | 4,333 | |||
1,000 | -0,333 | 0,000 | 0,500 | 0,167 | |||
0,000 | 1,000 | 0,197 | 0,197 | 0,184 | |||
0,000 | 0,000 | -22,197 | 2,303 | -1,684 | |||
0,000 | 0,000 | 5,724 | 24,724 | 5,009 | |||
1,000 | -0,333 | 0,000 | 0,500 | 0,167 | |||
0,000 | 1,000 | 0,197 | 0,197 | 0,184 | |||
0,000 | 0,000 | 1,000 | -0,104 | 0,076 | |||
0,000 | 0,000 | 0,000 | 25,317 | 4,574 | |||
x= | 0,120 | ||||||
0,130 | |||||||
0,095 | |||||||
0,181 |
Листинг программы (Метод Крамера, Метод Гаусса, Метод обратной матрицы).
Begin VB.Form frmAriel
BorderStyle = 1 'Единственный Фиксированный
Caption = "Решение систем линейных уравнений"
ClientHeight = 6315
ClientLeft = 4365
ClientTop = 2430
ClientWidth = 7815
BeginProperty Font
Name = "MS Sans Serif"
Size = 12
Charset = 204
Weight = 700
Underline = 0 'False
Italic = -1 'True
Strikethrough = 0 'False
EndProperty
LinkTopic = "Форма1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 6315
ScaleWidth = 7815
Begin VB.TextBox txtMOMZ
Alignment = 2 'Выравнивание по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3960
TabIndex = 45
Top = 5520
Width = 975
End
Begin VB.TextBox txtMOMY
Alignment = 2 'Выравнивание по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2640
TabIndex = 44
Top = 5520
Width = 975
End
Begin VB.TextBox txtMOMX
Alignment = 2 'Выравнивание по Центру
BeginProperty DataFormat
Type = 1
Format = "0,0000"
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 1049
SubFormatType = 1
EndProperty
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 1320
TabIndex = 43
Top = 5520
Width = 975
End
Begin VB.TextBox txtMGZ
Alignment = 2 'Выравнивание по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3960
TabIndex = 42
Top = 4800
Width = 975
End
Begin VB.TextBox txtMGY
Alignment = 2 'Выравнивание по Центру
BeginProperty Font
Name = "Times New Roman"
Size = 15.75
Charset = 204
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 2640
TabIndex = 41
Top = 4800
Width = 975
End
Begin VB.TextBox txtMGX
Alignment = 2 'Выравнивание по Центру