- •5 Семестр Калуга, 2008
- •Содержание
- •1. Домашнее задание №1: «Методы решения систем линейных алгебраических уравнений»
- •1.1. Задание
- •1.2. Пример выполнения задания Постановка задачи
- •Метод Гаусса с выбором главного элемента.
- •Результат работы алгоритма:
- •Результат работы алгоритма:
- •3. Метод вращений решения.
- •Результат работы алгоритма:
- •4. Метод простых итераций.
- •Пример выполнения программы:
- •5. Метод Зейделя.
- •Результат выполнения программы:
- •Выводы:
- •Требования к оформлению
- •1.4. Список литературы
- •Домашнее задание №2: «Методы решения нелинейных алгебраических уравнений»
- •2.1. Задание
- •2.2. Пример выполнения задания
- •1. Метод биекций.
- •Результат работы программы:
- •2. Метод простых итераций.
- •3. Метод Ньютона.
- •Требования к оформлению
- •2.4. Список литературы
Пример выполнения программы:
condA =
2.6569
q =
0.9700
X =
-2.4731
1.5106
-3.2266
2.3083
итераций
i =
46
5. Метод Зейделя.
Метод Зейделя - видоизменение МПИ (3) решения СЛАУ, приведённых к виду (2), при котором для подсчёта i-ой компоненты (k+1)-го приближения к искомому вектору используются уже найденные на этом, т.е. (k+1)-ом шаге, новые значения первых (i-1) компонент. Т.е если система (1) тем или иным способом сведена к системе (2) с матрицей коэффициентов и вектором свободных членов , то приближения к её решению по методу Зейделя определяются системой неравенств
где k=0,1,2,…, а - компоненты заданного (выбранного) начального вектора .
Применительно к компьютерным расчётам один полный, т.е. векторный итерационный шаг метода Зейделя может интерпретироваться как реализация формулы (2), где под знаком равенства следует понимать знак присваивания, а под x – один и тот же линейный массив из n элементов, на нулевом шаге заполненный компонентами заданного начального вектора . Для компьютерной реализации одного шага метода простых итераций нужно целиком сохранять n-элементный массив x, подставляемый в правую часть, до тех пор, пока не сформируется полностью n-элементный массив – результат данного итерационного шага. В связи с такой интерпретацией метод Зейделя называют методом последовательных смещений, а метод простых итераций – одновременным смещением.
Практическая часть(листинг программы MatLab)
function zdl
b=[-1.83; 0.65; -2.23; 1.13];
A=[-0.68 -0.18 0.02 0.21;
0.16 -0.88 -0.14 0.27;
0.37 0.27 -1.02 -0.24;
0.12 0.21 -0.18 -0.75 ];
A_Tr=A';
condA=cond(A);
condA
e=[1 1 1 1];
E=diag(e);
B=A+E;
c=b;
q=norm(B,1);
q
X=[0;0;0;0];
X_k1=[0;0;0;0];
X_k=[0;0;0;0];
X(1,1)=B(1,1)*X(1,1)+B(1,2)*X(2,1)+B(1,3)*X(3,1)+B(1,4)*X(4,1)+c(1,1);
X(2,1)=B(2,1)*X(1,1)+B(2,2)*X(2,1)+B(2,3)*X(3,1)+B(2,4)*X(4,1)+c(2,1);
X(3,1)=B(3,1)*X(1,1)+B(3,2)*X(2,1)+B(3,3)*X(3,1)+B(3,4)*X(4,1)+c(3,1);
X(4,1)=B(4,1)*X(1,1)+B(4,2)*X(2,1)+B(4,3)*X(3,1)+B(4,4)*X(4,1)+c(4,1);
i=1;
n=max(abs(X-X_k1));
while n> (((1-q)/q)*eps)
X_k=X;
X(1,1)=B(1,1)*X(1,1)+B(1,2)*X(2,1)+B(1,3)*X(3,1)+B(1,4)*X(4,1)+c(1,1);
X(2,1)=B(2,1)*X(1,1)+B(2,2)*X(2,1)+B(2,3)*X(3,1)+B(2,4)*X(4,1)+c(2,1);
X(3,1)=B(3,1)*X(1,1)+B(3,2)*X(2,1)+B(3,3)*X(3,1)+B(3,4)*X(4,1)+c(3,1);
X(4,1)=B(4,1)*X(1,1)+B(4,2)*X(2,1)+B(4,3)*X(3,1)+B(4,4)*X(4,1)+c(4,1);
n=max(abs(X-X_k));
i=i+1;
end
X=X_k
disp('итераций'), i
Результат выполнения программы:
condA =
2.6569
q =
0.9700
X =
-2.4731
1.5106
-3.2266
2.3083
итераций
i =
36
Выводы:
Полученные результаты сведем в таблицу:
|
Метод Гаусса |
LU – разложение |
Метод вращений |
МПИ |
Метод Зейделя |
итераций |
- |
- |
- |
46 |
36 |
решение |
-2.4731 1.5106 -3.2266 2.3083
|
-2.4731 1.5106 -3.2266 2.3083
|
-2.4731 1.5106 -3.2266 2.3083
|
-2.4731 1.5106 -3.2266 2.3083
|
-2.4731 1.5106 -3.2266 2.3083 |
Исходя из полученных экспериментально данных, можно заключить, что скорость сходимости метода Зейделя выше, чем у МПИ. (метод Зейделя – 36 итераций, МПИ – 46 итераций) Однако, имеющий высокую скорость сходимости метод Зейделя, требует целиком сохранять n – элементный массив х на каждом шаге итерации, что вызывает дополнительные затраты ресурсов ЭВМ.
Положительное отличие метода Гаусса от других - простота реализации. Метод LU – разложения имеет смысл применять, если вектор – столбец свободных членов переменный. Метод вращений имеет самую высокую точность решения среди неитерационных методов решения СЛАУ.