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

UptoLike

32
Главные программы имеют следующую структуру имени: samN_XX, где
Nномер раздела лекционного курса, XXпорядковый номер программы в
пределах раздела.
Начнем с простейшей
программы решения СЛАУ с верхней треугольной
матрицей
. Главная программа (файл sam2_01.m) имеет вид:
% Решение СЛАУ с верхней треугольной матрицей
% Главная программа
clear;% Очистка рабочего пространства
clc; % Очистка командного окна
% Пример матрицы и правой части
disp('Матрица решаемой системы')
A=[3 -2 1 -1
0 4 -1 2
0 0 2 3
0 0 0 5]
disp('Вектор правой части')
b=[ 8
-3
11
15]
% Обращение к функции решения СЛАУ с верхней треугольной матри-
цей
disp('Решение системы')
x=backsub(A,b)
disp('Невязка');
r=b-A*x
Программа вызывает функцию backsub решения СЛАУ с верхней тре-
угольной матрицей:
function x=backsub(A,b)
% Функция решения СЛАУ с верхней треугольной матрицей
% Вход A - верхняя треугольная матрица размера nxn
% b - вектор размера nx1
% Выход x - решение системы уравнений
n=length(b); % размер вектора
x=zeros(n,1); % формирование массива нулей nx1
% Вычисление решения обратной подстановкой
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
В результате выполнения программы получаем
Матрица решаемой системы
A =
3 -2 1 -1
0 4 -1 2
0 0 2 3
0 0 0 5
    Главные программы имеют следующую структуру имени: samN_XX, где
N – номер раздела лекционного курса, XX – порядковый номер программы в
пределах раздела.
    Начнем с простейшей программы решения СЛАУ с верхней треугольной
матрицей. Главная программа (файл sam2_01.m) имеет вид:
% Решение СЛАУ с верхней треугольной матрицей
% Главная программа
clear;% Очистка рабочего пространства
clc; % Очистка командного окна
% Пример матрицы и правой части
disp('Матрица решаемой системы')
A=[3 -2 1 -1
   0 4 -1 2
   0 0 2 3
   0 0 0 5]
disp('Вектор правой части')
b=[ 8
   -3
    11
    15]
% Обращение к функции решения СЛАУ с верхней треугольной матри-
цей
disp('Решение системы')
x=backsub(A,b)
disp('Невязка');
r=b-A*x
Программа вызывает функцию backsub решения СЛАУ с верхней тре-
угольной матрицей:
function x=backsub(A,b)
% Функция решения СЛАУ с верхней треугольной матрицей
% Вход   A - верхняя треугольная матрица размера nxn
%        b - вектор размера nx1
% Выход x - решение системы уравнений
n=length(b); % размер вектора
x=zeros(n,1); % формирование массива нулей nx1
% Вычисление решения обратной подстановкой
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
    x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
В результате выполнения программы получаем
Матрица решаемой системы
A =
     3    -2     1    -1
     0     4    -1     2
     0     0     2     3
     0     0     0     5
                                                                    32