Вычислительные методы линейной алгебры. Горбаченко В.И - 59 стр.

UptoLike

59
% Зейделя, последовательной верхней релаксации (SOR),
% минимальных невязок, сопряженных градиентов.
% Во всех методах используется нулевое начальное приближение.
% Во всех методах для проверки условия окончания итераций используется
% относительная норма невязки.
% Возможно многократное решение системы разными или одним способом.
% Результирующие графики сохраняются в отдельных окнах, что позволяет
% сравнивать скорости сходимости методов.
clear % очистка рабочего пространства
clc % очистка командного окна
close all % Закрытие всех окон
disp('Матрица решаемой СЛАУ')
A=[10 -2 -1 0 0 0 0 0 0 0 0 0
-2 6 -2 -1 0 0 0 0 0 0 0 0
-1 -2 6 -2 -1 0 0 0 0 0 0 0
0 -1 -2 6 -2 -1 0 0 0 0 0 0
0 0 -1 -2 6 -2 -1 0 0 0 0 0
0 0 0 -1 -2 6 -2 -1 0 0 0 0
0 0 0 0 -1 -2 6 -2 -1 0 0 0
0 0 0 0 0 -1 -2 6 -2 -1 0 0
0 0 0 0 0 0 -1 -2 6 -2 -1 0
0 0 0 0 0 0 0 -1 -2 6 -2 -1
0 0 0 0 0 0 0 0 -1 -2 6 -2
0 0 0 0 0 0 0 0 0 -1 -2 10]
disp('Вектор правой части')
b=[ 5
5
5
5
5
5
5
5
5
5
5
5]
n = length (b); %Расчет длины вектора b
x0 = zeros (n,1); %Обнуление начального приближения
iter(A,b,x0); % Реализация итерационных методов
Назначением функции iter(A,b) является выбор с помощью меню
одного из итерационных методов, запрос исходных данных и вывод резуль-
татов. В приведенном ниже тексте функции используются переносы операто-
ров на следующую строку (символы "
"). В исходном тексте функции пере-
носы не используются. При решении СЛАУ, требующем большого числа
итераций, целесообразно использовать логарифмический масштаб по оси
абсцисс, отражающей номер итерации (функции
loglog, semilogx). Но
при этом не будут отображаться значения нулевой итерации (начального
приближения). В методе сопряженных градиентов на последней итерации не
% Зейделя, последовательной верхней релаксации (SOR),
% минимальных невязок, сопряженных градиентов.
% Во всех методах используется нулевое начальное приближение.
% Во всех методах для проверки условия окончания итераций используется
% относительная норма невязки.
% Возможно многократное решение системы разными или одним способом.
% Результирующие графики сохраняются в отдельных окнах, что позволяет
% сравнивать скорости сходимости методов.
clear % очистка рабочего пространства
clc % очистка командного окна
close all % Закрытие всех окон
disp('Матрица решаемой СЛАУ')
A=[10 -2 -1     0   0   0   0   0   0   0   0   0
   -2   6 -2 -1     0   0   0   0   0   0   0   0
   -1 -2    6 -2 -1     0   0   0   0   0   0   0
    0 -1 -2     6 -2 -1     0   0   0   0   0   0
    0   0 -1 -2     6 -2 -1     0   0   0   0   0
    0   0   0 -1 -2     6 -2 -1     0   0   0   0
    0   0   0   0 -1 -2     6 -2 -1     0   0   0
    0   0   0   0   0 -1 -2     6 -2 -1     0   0
    0   0   0   0   0   0 -1 -2     6 -2 -1     0
    0   0   0   0   0   0   0 -1 -2     6 -2 -1
    0   0   0   0   0   0   0   0 -1 -2     6 -2
    0   0   0   0   0   0   0   0   0 -1 -2 10]
disp('Вектор правой части')
b=[ 5
    5
    5
    5
    5
    5
    5
    5
    5
    5
    5
    5]
n = length (b); %Расчет длины вектора b
x0 = zeros (n,1); %Обнуление начального приближения
iter(A,b,x0); % Реализация итерационных методов

    Назначением функции iter(A,b) является выбор с помощью меню
одного из итерационных методов, запрос исходных данных и вывод резуль-
татов. В приведенном ниже тексте функции используются переносы операто-
ров на следующую строку (символы "…"). В исходном тексте функции пере-
носы не используются. При решении СЛАУ, требующем большого числа
итераций, целесообразно использовать логарифмический масштаб по оси
абсцисс, отражающей номер итерации (функции loglog, semilogx). Но
при этом не будут отображаться значения нулевой итерации (начального
приближения). В методе сопряженных градиентов на последней итерации не




                                                                         59