ЧМ В ИНЖЕНЕРНЫХ РАСЧЁТАХ(часть 1)_v1
.pdf2.1.3 Решение СЛАУ методом Гаусса с выбором главных элементов по столбцу
Приведѐм решение рассмотренной выше системы, в котором для гарантии вычислительной устойчивости перед исключением неизвестных из уравнений с k го по n ое выбирают и переставляют с k ым (I-ым на шаге k=1) то уравнение (II-ое см. решение), в котором
коэффициент (главный элемент) при неизвестном |
xk наибольший по |
||||||||||||
абсолютной величине. Шаг k=1: |
|
|
|
|
|
|
|
|
|
||||
2x1 |
1x2 |
1x3 |
1 |
(I) |
4x1 |
3x2 |
|
0x3 |
|
2 |
(II) |
||
|
|
|
|
|
|
|
|||||||
3x2 |
0x3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
4x1 |
(II) перестановка уравн. |
2x1 |
1x2 |
1x3 |
|
1 |
(I) |
||||||
|
|
||||||||||||
2x1 |
2x2 3x3 9 (III) |
2x |
2x |
2 |
3x |
3 |
9 (III) |
||||||
|
|
|
|
|
|
1 |
|
|
|
|
Исключение неизвестного xk x1 выполняют по схеме, заданной в нумерации уравнений:
|
4x1 3x2 |
0x3 |
2 |
(II) |
|
4x1 |
3x2 |
0x3 |
2 |
(II) |
|||||||||||
|
2x 1x |
2 |
1x |
3 |
1 |
(I ) I - (2/4) (II) |
|
|
0 0.5x |
2 |
1x |
3 |
0 |
(I ) |
|||||||
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
2x 2x |
|
3x |
|
9 |
(III ) (III) ( 2/4) (II) |
|
|
|
|
|
|
3x |
|
|
10 |
(III ) |
||||
|
2 |
3 |
|
0 3.5x |
2 |
3 |
|||||||||||||||
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На втором ( k 2 ) шаге также сначала выбирается главный элемент
среди коэффициентов при неизвестном |
xk x2 |
среди уравнений с |
|||||
k го по n ое и переставляют местами строки так, чтобы строка с |
|||||||
главным элементом стала k ой . Шаг k=2: |
|
|
|
||||
4x1 3x2 |
0x3 |
2 |
(II) |
4x1 3x2 |
0x3 |
2 (II) |
|
|
1x3 |
0 |
|
|
3.5x2 |
3x3 |
10(III ) |
0 0.5x2 |
(I ) перестановка уравн. 0 |
||||||
|
3x3 10 |
(III ) |
|
0.5x2 |
1x3 |
0 (I ) |
|
0 3.5x2 |
0 |
Затем выполняют исключение неизвестного xk |
x2 из строк с k 1 ой |
||||||||
по n ую (здесь из 3-ей строки) по схеме: |
|
|
|
|
|
||||
4x1 3x2 |
0x3 |
2 |
(II) |
|
4x1 3x2 |
0x3 |
2 |
(II) |
|
|
3.5x2 |
3x3 |
10 |
(III ) |
|
0 3.5x2 |
3x3 |
10 |
(III ) |
0 |
|
||||||||
|
0.5x2 |
1x3 |
0 |
(I ) (I ) - (-0.5/3.5) (III ) |
|
|
|
1.43 |
(I ) |
0 |
0 0x2 1.43x3 |
Этим завершается прямой ход метода исключения Гаусса.
Обратный ход (или обратная подстановка) состоит в вычислении xn x3 из последнего уравнения: xn x3 1.43/1.43 1, а затем его под-
41
становки в уравнения, расположенные выше, и вычислении сначала
x2 (10 3 x3 ) / 3.5 (10 3 1) / 3.5 2 из 2-го уравнения, |
а затем и |
x1 (2 3x2 0 x3 ) / 4 (2 3 2 0) / 4 1 из 1-го уравнения. |
|
2.1.4 Характеристики метода Гаусса (прямых методов)
Число арифметических операций, выполняемых при решении СЛАУ по рассмотренному алгоритму метода Гаусса, выражается (для больших n) формулой 2n3/3, в которой опущены слагаемые с меньшими степенями при n.
Относительная погрешность вычисления неизвестных зависит от числа обусловленности cond (A) матрицы системы, от числа t разрядов (обычно двоичных, т.е. s=2), отводимых для хранения мантис-
сы |
|
|
|
|
|
|
|
|
|
|
чисел, |
и |
|
оценивается |
формулой |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k f (n) cond (A) s |
t |
, в которой |
|
|
|
|
|
|
- норма вектора – |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
x x* |
|
|
|
|
|
|
|
x* |
|
|
|
|
|
x |
|
|
|
|
общая мера вектора (в частности, длина вектора тоже есть норма). Коэффициент k порядка единицы (обычно не превышает s), а f (n) n32 , причѐм степень можно существенно уменьшить (до ½), если вычислять скалярные произведения с двойной точностью. Отметим, что повысить точность полученного приближѐнного реше-
~ |
(добавкой x ) с помощью итерационного уточнения – повтор- |
|||||
ния x |
||||||
ного решения системы |
~ |
b |
(где |
~ |
~ |
|
A x b |
b |
Ax ) – можно лишь |
увеличив точность вычисления главной составляющей (повторного) решения - вычисления скалярного произведения.
Рассмотренный алгоритм (и алгоритмы с LU-разложением) применяют для решения систем с плотно заполненными матрицами. Для часто встречающихся в технике положительно определѐнных матриц и матриц специальной структуры, в частности, ленточных, используются эффективные модификации разложений прямыми методами. Для больших разреженных матриц более эффективными считаются итерационные методы.
2.2Программное обеспечение
ВExcel не включена функция, непосредственно предназначенная для решения СЛАУ. И хотя решение можно получить через обраще-
42
ние матрицы, но это не правильный путь – более трудоемкий и менее точный. Сравните два способа вычисления x из одного уравнения 3x=6: через обращение x=(1/3)*6 и простое деление x=6/3. Поэтому для решения в Excel СЛАУ методом Гаусса в лаборатории можно использовать (из папки C:\Materials\VBA_Excel) модуль Math.bas, в который нами включены процедура KGAUSS и функция xCdGauss, определѐнная пользователем. Процедуру KGAUSS можно вызывать из макроса; еѐ заголовок (и текст см. в Math.bas):
Sub KGAUSS(ByRef Ab( ) As Double, ByVal N As Long, _
ByRef x( ) As Double, ByRef IAI As Long) , где:
Ab(? To N, ? To N+1) – расширенная (включающая столбец правой части) матрица системы (?={0| 1}),
N – макс. индекс в первой размерности у массивов Ab и x.
x(? To N) – вектор решения,
IAI ~ признак вырожденности: IAI=0
– гл. элемент 0, IAI=1 – не 0.
Функция, определѐнная пользователем, xCdGauss используется следующим образом. Для решения СЛАУ с расширенной матрицей A1:D3 коэффициентов, например,
показанной в таблице 2.1, выделяется горизонтальный диапазон, например, A4:D4 из N+1 ячеек (N=3 – число уравнений). Затем нажимают клавишу F2 и выбирают в ленте: Формулы,
Вставить функцию, Категория -
Рисунок 2.4.
Таблица. 2.1.
|
|
|
A |
|
|
B |
|
|
|
C |
|
|
D |
|
|
1 |
|
2 |
|
1 |
1 |
7 |
|
||||||
|
2 |
|
4 |
|
3 |
0 |
10 |
|
||||||
|
3 |
|
-2 |
|
2 |
3 |
11 |
|
||||||
|
4 |
|
1 |
|
|
2 |
|
|
|
3 |
|
|
10,72727 |
|
Определѐнные пользователем,
xCdGauss, OK. В возникшем окне Аргументы функции (см. рис. 2.1) указывают для аргумента Ab диапазон A1:D3 ячеек с коэффициентами расширенной матрицы СЛАУ, а затем нажимают Ctrl+Shift+Enter. В ячейках A4:C4 появятся вычисленные значения неизвестных СЛАУ, а в ячейке D4 число обусловленности матрицы системы.
43
Из MatLab для решения СЛАУ можно использовать функцию linsolve в команде: x=linsolve(A, b). Она использует в решении LUразложение матрицы. Заметим, что на месте вектора b можно указать матрицу из нескольких различных векторов (для нескольких СЛАУ с одинаковой матрицей A - в технике это соответствует различным нагружениям одной и той же системы). При решении выполняется одно единственное LU-разложение матрицы и обратные подстановки для всех векторов.
2.3 Задание к расчетно-графической работе №2
1.Для предложенного варианта СЛАУ выполнить (в Excel) пошаговое решение методом Гаусса с выбором главного элемента по столбцу. Перенести в отчѐт результаты шагов решения.
2.Проверить полученное в п.1 решение СЛАУ с помощью «стандартных» программных средств: вычислениями в MatLab, выполнением процедур и функций в Excel. Описать в отчѐте этапы и результаты выполненной проверки.
2.3.1Пример выполнения варианта задания
1.Описание пошагового решения в Excel СЛАУ методом Гаусса
(с выбором главных элементов по столбцу)
Для изучения решения СЛАУ методом Гаусса в Excel следует скопировать в свою папку и запустить файл C:\Materials\ VBA_Excel\GaussMethod.xlsm, с которым подключаются три макроса:
E - формирует единичную матрицу,
L – нормирует вектор-столбец делением на первый элемент, x – решает систему с верхней треугольной матрицей.
Они запускаются щелчком мыши по световой круглой кнопке возле надписи с соответствующей буквой (см. таблицу 2.2). Единичную матрицу можно также вызвать, запустив в MatLab (из Excel) выполнение функции eye(n). Перестановки и исключения выполняются умножением на вспомогательные матрицы, которые формируются
44
вручную из единичной. Так для выполнения перестановок 1-ой и 2-ой строк расширенной матрицы Ab надо слева на неѐ умножить единичную, у которой в этих строках единицы с главной диагонали сдвинуты во 2-ой и 1-ый столбцы.
При пошаговом решении СЛАУ в Excel (на этапе 1 ) расширенную матрицу Ab1 помещаем в диапазон G2:J4 (см. таблицу 2.2). В 1-ом столбце Ab1 главный элемент равен 4, он находится во 2-ой
строке. В соответствии с этим, (на этапе |
2 |
) слева в ячейках B2:D4 |
||
набиваем (или переделываем из единичной) |
матрицу |
перестановок |
||
P1, которая будет задавать перестановки 1-ой и 2-ой строк. Под мат- |
||||
|
|
|
|
|
рицей Ab1 (в диапазоне G6:J8) размещаем (на этапе |
3 |
) матрицу, ко- |
||
торая получится как результат умножения P1 на Ab1. |
|
Таблица 2.2
|
A |
B |
C |
D |
E |
|
F |
G |
H |
I |
|
J |
1 |
|
Матрица перестановок (шаг k=1) |
2 |
|
Расширенная матрица СЛАУ |
1 |
||||||
2 |
|
0 |
1 |
|
0 |
|
|
2 |
1 |
1 |
|
7 |
3 |
P1= |
1 |
0 |
|
0 |
|
Ab1= |
4 |
3 |
0 |
|
10 |
4 |
|
0 |
0 |
|
1 |
|
|
-2 |
2 |
3 |
|
11 |
5 |
|
Матрица исключений (шаг k=1) |
4 |
|
Строки переставлены (шаг k=1) |
3 |
||||||
6 |
|
1 |
0 |
|
0 |
|
|
4 |
3 |
0 |
|
10 |
7 |
L1= |
-0,5 |
1 |
|
0 |
|
P1*Ab1= |
2 |
1 |
1 |
|
7 |
8 |
|
0,5 |
0 |
|
1 |
|
|
-2 |
2 |
3 |
|
11 |
9 |
|
Матрица перестановок (шаг k=2) 6 |
|
Матрица СЛАУ после шага k=1 |
5 |
|||||||
10 |
|
1 |
0 |
|
0 |
|
|
4 |
3 |
0 |
|
10 |
11 |
P2= |
0 |
0 |
|
1 |
|
Ab2=L1*(P1*Ab1)= |
0 |
-0,5 |
1 |
|
2 |
12 |
|
0 |
1 |
|
0 |
|
|
0 |
3,5 |
3 |
|
16 |
13 |
|
Матрица исключений (шаг k=2) |
8 |
|
Строки переставлены шаг k=2 |
7 |
||||||
14 |
|
1 |
0 |
|
0 |
|
|
4 |
3 |
0 |
|
10 |
15 |
L2= |
0 |
1 |
|
0 |
|
P2*Ab2= |
0 |
3,5 |
3 |
|
16 |
16 |
|
0 |
0,14286 |
|
1 |
|
|
0 |
-0,5 |
1 |
|
2 |
17 |
|
|
|
|
|
|
|
Матрица СЛАУ после шага k=2 |
9 |
|||
18 |
|
|
|
|
|
|
|
4 |
3 |
0 |
|
10 |
19 |
|
|
|
|
|
|
Ab3=L2*(P2*Ab2)= |
0 |
3,5 |
3 |
|
16 |
20 |
|
|
|
|
|
|
|
0 |
0 |
1,4286 |
4,2857 |
|
|
|
|
|
|
|
21 |
10 Решение СЛАУ с верхней треугольной матрицей x1,x2, x3= |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
Напомним, как выполняется в Excel умножение матриц. Для этого: выделяем G6:J8, нажимаем F2, в ячейку G6 вставляем как формулу функцию МУМНОЖ. Вызвав эту функцию, указываем сначала диапазон B2:D4 первой матрицы, а затем – второй G2:J4. Для записи
45
матрицы результата в диапазон, начинающийся в ячейке G6, следует нажать Ctrl+Shift+Enter.
После получения матрицы P1*Ab1 с переставленными 2-ой и 1-ой строками готовим (на этапе 4 ) слева матрицу L1 для исключения не-
известных из строк со 2-ой по 3-ью (c k+1 по n) первого столбца. Для этого выделяем диапазон B6:D8 (строк c k по n) и запускаем макрос E создания единичной матрицы (по Ctrl+Shift+E или кликнув по кружку E - фигуры, с которой мы связали этот макрос). Затем выделяем в матрице P1*Ab1 1-ый столбец (G6:G8) с главным элементом. Копируем значения из G6:G8 и, выделив B6:B8, помещаем специальной вставкой (значения) в столбец единичной матрицы. Не сбрасывая выделение B6:B8, запускаем (по Ctrl+Shift+L или кликнув по L-кружку фигуры) макрос Lk нормирования этого вектора. В результате получаем
показанную в таблице 2.2 (для этапа 4 |
) матрицу L1. После умно- |
жения (на этапе 5 ) этой матрицы |
на расширенную матрицу |
P1*Ab1 (диапазон G6:J8) заносим в G10:J12 матрицу произведения Ab2=L1*(P1*Ab1) с исключенным неизвестным x1 из G11:G12.
Аналогичным образом действуем далее (на этапах 6 , 7 , 8 , 9 ) до получения матрицы Ab3 (G18:J20), у которой все элементы под главной диагональю (левой (3х3)-подматрицы Ab3) равны нулю. Расширенная матрица Ab3 соответствует СЛАУ с верхней треугольной матрицей; она просто решается последовательным вычислением
x3 - обратной подстановкой. Еѐ алгоритм реализован в макросе TrSolve, который запускаем по Ctrl+Shift+x (или кликнув по соответствующему x-кружку фигуры) при предварительно выделенной расши-
ренной матрице (G18:J20). Выводим (на этапе 10 ) вычисленные неизвестные x1 , x2 , x3 системы в ячейки G21:I21 под соответствующими столбцами верхней треугольной матрицы Ab3.
2. Проверка полученного решения
Рассмотренная далее проверка решения выполнена в режиме подключения к Excel пакета MatLab. Режим предварительно устанавливается в меню «Пара-
метры Excel».
46
а) Отсылаем по частям записанную в ячейках листа Excel расширенную матрицу в MatLab. Для этого сначала выделяем ячейки с матрицей, а затем, вызвав связь с MatLab (кнопкой связи или из контекстного меню), выбираем «Send data to MATLAB» и указываем имя матрицы для MatLab, например, «A» (латинское) и щѐлкаем по «OK». Потом таким же образом отсылаем в MatLab вектор правых частей, в переменную «b». Затем вызываем запуск «Run MATLAB command» команды в MatLab, набиваем в поле окна ввода команду x=A\b (или x=linsolve(A, b) ) и щѐлкаем по «OK». Для вызова из MatLab значений вектора решения «x» сначала выделяем первую ячейку под вектор решения, вызываем команду «Get data from MATLAB», в окне ввода набиваем «x» и щѐлкаем по «OK».
б) Для проверки в Excel можно написать обычный макрос, который прочитает расширенную матрицу с листа и обратится к процедуре KGAUSS. А можно использовать функцию, определѐнную пользователем, xCdGauss, как это описано в разделе «Программное обеспечение».
2.3.2 Варианты заданий (варианты СЛАУ)
|
|
1 1 |
2 |
|
|
|
|
4 |
|
|
|
0 |
1 |
3 |
2 |
|
|
||||||||||
|
b |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
1. |
A |
3 1 1 |
13 |
|
16. |
A |
|
1 |
1 |
2 |
|
b |
5 |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
2 3 1 |
|
1 |
|
|
4 |
1 |
2 |
7 |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
1 |
3 2 |
|
|
|
7 |
|
|
A |
|
3 1 1 |
|
b |
|
7 |
|
|
|||||||||
2. |
A 2 |
6 |
1 |
|
b |
3 |
|
17. |
|
2 |
5 |
3 |
7 |
|
|
||||||||||||
|
|
5 |
1 4 |
|
|
|
7 |
|
|
|
|
1 1 |
1 |
|
|
|
1 |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
5 8 |
1 |
|
|
4 |
|
|
|
|
2 1 |
3 |
|
|
|
|
11 |
|
|||||||||
3. |
A |
1 |
2 |
3 |
|
|
b |
6 |
|
18. |
A |
0 |
2 |
3 |
|
b |
|
9 |
|
||||||||
|
|
2 |
3 2 |
|
|
|
3 |
|
|
|
|
1 3 |
2 |
|
|
|
12 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
4. |
|
0 1 1 |
|
|
3 |
19. |
|
3 4 |
2 |
|
|
5 |
|
||||||||||||||
A |
|
3 1 2 |
|
|
b |
|
15 |
|
A |
|
1 5 |
1 |
|
b |
|
6 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
1 3 2 |
|
|
|
|
9 |
|
|
|
|
2 |
1 |
3 |
|
9 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
|
|
|
7 |
|
||
5. |
A |
3 |
2 |
0 |
|
b |
5 |
|
|||
|
|
2 |
1 |
6 |
|
|
14 |
|
|||
|
|
|
|
|
|||||||
|
A |
|
2 |
1 |
1 |
b |
|
1 |
|
||
6. |
|
1 1 |
1 |
|
|
6 |
|
|
|||
|
|
|
3 |
1 |
1 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
0 |
2 |
7 |
|
3 |
7. |
A |
2 |
1 |
3 |
b |
3 |
|
|
3 |
4 |
|
|
|
|
|
5 |
|
7 |
|
|
2 1 1 |
|
|
|
7 |
|
||
8. |
A |
1 3 2 |
|
|
b |
4 |
|
||
|
|
2 1 4 |
|
|
|
|
|
||
|
|
|
|
2 |
|
||||
9. |
|
2 |
3 |
4 |
|
|
11 |
|
|
|
A |
1 |
2 |
3 |
|
b |
2 |
||
|
|
3 |
2 |
5 |
|
|
9 |
|
|
|
|
|
|
|
|||||
|
|
1 |
2 |
1 |
|
|
3 |
|
|
10. |
A |
3 |
5 3 |
|
b |
2 |
|
||
|
|
1 7 |
2 |
|
|
12 |
|
||
|
|
|
|
|
|
A |
|
2 |
3 |
1 |
|
|
2 |
|
|
11. |
|
2 |
1 |
3 |
b |
6 |
|
|||
|
|
|
3 |
2 |
|
|
|
|
5 |
|
|
|
|
1 |
|
|
|
||||
|
|
1 |
|
2 |
4 |
|
|
5 |
|
|
12. |
A |
5 |
|
1 |
2 |
|
b |
7 |
|
|
|
|
3 |
1 |
1 |
|
|
|
|
||
|
|
|
|
2 |
|
|
2 |
5 |
3 |
0 |
|
||||||
13. |
A |
4 |
3 |
2 |
|
|
b 11 |
|
||||
|
|
5 |
6 |
2 |
|
|
|
|||||
|
|
|
10 |
|
||||||||
|
|
2 |
1 |
1 |
|
b |
0 |
|
||||
14. |
A |
3 |
4 |
|
2 |
|
16 |
|
||||
|
|
3 |
2 |
4 |
|
|
|
|
|
|
||
|
|
|
|
|
4 |
|
||||||
|
|
1 |
1 |
2 |
|
|
|
|
5 |
|
|
|
15. |
A |
2 |
1 |
2 |
|
|
|
b |
7 |
|
||
|
|
4 |
1 |
4 |
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
1 |
3 |
|
5 |
|
20. |
A |
3 |
4 |
5 |
b |
4 |
|
|
|
2 |
1 |
|
|
8 |
|
|
|
4 |
|
|
|
|
1 |
|
5 |
1 |
b |
|
7 |
|
|
21. |
A |
2 |
|
1 |
1 |
|
5 |
|
||
|
|
3 |
|
2 |
4 |
|
|
|
|
|
|
|
|
|
|
18 |
|||||
|
A |
|
2 |
5 |
5 |
|
3 |
|||
22. |
11 3 |
1 |
|
b |
14 |
|
||||
|
|
|
1 |
1 |
1 |
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
|
b |
|
0 |
|
|
|
|
|||||||
23. |
A |
1 |
|
1 |
2 |
|
|
|
8 |
|
|
|
|
||||||
|
|
7 |
|
5 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
12 |
|
|
|
||||||||||
|
|
2 |
|
|
3 |
1 |
|
|
|
|
4 |
|
|
|
|
||||
24. |
A |
1 |
|
|
0 |
1 |
|
|
b |
6 |
|
|
|
|
|||||
|
|
1 |
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|||
|
|
|
1 1 |
|
|
|
|
|
|
|
|
||||||||
25. |
|
|
|
3 |
1 |
5 |
|
|
10 |
|
|
||||||||
A |
|
|
2 |
3 4 |
|
b |
8 |
|
|||||||||||
|
|
|
|||||||||||||||||
|
|
|
|
5 |
3 |
4 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
5 |
|
|||||||||||
|
A |
1 |
2 |
2 |
|
|
|
1 |
|
|
|||||||||
26. |
1 |
1 |
2 |
|
b 16 |
|
|
||||||||||||
|
|
|
|
|
|
1 |
1 |
|
|
|
2 |
|
|
||||||
|
|
|
1 |
|
|
|
|
|
|||||||||||
|
A |
|
2 |
1 3 |
|
b |
|
1 |
|||||||||||
27. |
|
1 |
3 |
|
1 |
|
5 |
|
|||||||||||
|
|
|
|
5 |
2 |
|
1 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
2 |
||||||||||
|
A |
|
|
3 |
1 |
2 |
|
|
|
5 |
|
||||||||
28. |
|
|
2 |
3 |
1 |
|
|
b |
17 |
|
|
||||||||
|
|
|
|
5 |
1 |
|
3 |
|
|
|
|
19 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
A |
|
8 3 |
4 |
|
|
|
|
9 |
|
|
|
|||||||
29. |
|
3 4 |
|
1 |
b 3 |
|
|||||||||||||
|
|
|
|
4 5 |
8 |
|
|
|
|
5 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
2 1 3 |
b |
|
|
9 |
|
||||||||||
30. |
A |
1 |
2 |
|
1 |
|
|
|
13 |
|
|||||||||
|
|
|
|
3 1 |
|
|
|
|
|
|
|
|
6 |
|
|
||||
|
|
|
|
1 |
|
|
|
|
|
|
48
3РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №3 Решение СЛАУ итерационными методами
3.1Краткие теоретические сведения
3.1.1Об итерационных методах
Вряде случаев для решения СЛАУ удобно использовать итерационные методы (или методы последовательного приближения). В них вектор x0 начального приближения корректируется на после-
дующих k шагах приближения (до xk ) и в случае сходимости позволяет приблизиться к точному решению x* , к которому стремится xk при бесконечном увеличении числа k точно выполненных шагов. Реально вычисления прекращают при достижении требуемой точности; из-за этого в решение и при абсолютно точных вычислениях образуется погрешность метода. Этой погрешности нет в прямых методах (поэтому их также называют точными), но в результатах присутствует накопленные ошибки округлений.
Для решения СЛАУ Ax=b методом последовательных приближений сначала необходимо представить систему в подходящей для итераций форме. Общий вид преобразованной системы
x Cx d , |
(3.1) |
позволяет получить итерационную формулу, например, для разбираемого далее метода простых итераций:
x(k 1) Cx(k ) d , |
(3.2) |
где надстрочные (k+1) и (k) здесь - номера приближений (итераций). Преобразование к виду (3.1) можно выполнить по разным схемам; здесь будет рассмотрена одна часто встречаемая схема.
3.1.2 Метод простых итераций
Для получения итерационной формулы используем специальную схему преобразования системы: выразим неизвестные, расположенные на главной диагонали, следующей системы:
49
|
6x1 4x2 |
1x3 |
3 |
(I) (II) |
|
2x1 5x2 |
3x3 |
11 |
(II) (III) |
|
||||
|
|
|
10 |
(III) (I) |
0x1 3x2 4x3 |
x1(k 1)x2(k 1)x3(k 1)
0x1(k )
2x1(k )
0x1(k )
4x2(k ) 1x3(k ) 6 36
0x3(k ) 3x3(k ) 5 115
3x2(k ) 0x3(k ) 4 104
Выберем какой-то вектор x(0) начального приближения, например, x(0) 36 11 5 104 T 0.5 2.2 2.5 T , и найдѐм последующие приближения x(1) ,…, x(15) :
x1(1) |
0x1(0) 4 2.2 1 2.5 |
6 0.5 1.38 |
|
|
1.14 |
|
|
|
1.11 |
||||
|
|
|
|
|
|
|
|
|
|
|
|||
(1) |
(0) |
|
5 2.2 0.5 |
|
x(13) |
|
|
|
x(15) |
|
|
||
|
x2 |
2 0.5 |
0x2 1 2.5 |
,…, |
1.77 |
,..., |
1.82 |
||||||
|
x(1) |
0 0.5 3 |
2.2 0 x(0) |
|
4 2.5 0.85 |
|
|
|
|
|
|
||
|
|
0.89 |
|
|
|
0.91 |
|
||||||
|
3 |
|
3 |
|
|
|
|
|
|
|
|
|
|
В этом методе, называемом методом простых итераций или мето-
дом Якоби, на каждом шаге все компоненты вектора x(k ) использовались для вычисления вектора нового приближения x(k 1) . Можно заметить, что значения компонент вектора x(k ) постепенно приближаются к решению x* 1 2 1 T системы уравнений (с номерами I, II, III) из раздела 2, в которой здесь предварительно было выполнено преобразование, обозначенное в нумерации уравнений. Это предварительное преобразование исходной системы из раздела 2 выполнено с целью обеспечить сходимость итерационного процесса. Рассмотрим этот важный для итерационных методов вопрос.
Условия сходимости метода
Усматривая аналогию в решении СЛАУ Ax=b, x=? с методом простой итерации для одного скалярного уравнения a·x=b, x=?, запишем для них итерационные формулы:
x(k 1) c x(k ) d (x(k ) ) , |
x(k 1) |
Cx(k ) d . |
(3.3) |
x * x(k 1) c (x * x(k ) ) , |
x* x(k 1) C(x* x(k ) ) . |
(3.4) |
|
Для указанного слева одного |
линейного |
уравнения неравенство |
c 1 является достаточным условием сходимость к корню при любом начальном x(0) . Если ввести скалярную меру x , называемую нормой вектора, характеризующую размер вектора, применить
50