Матрицы. Системы линейных алгебраических уравнений (СЛАУ) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Матрицы. Системы линейных алгебраических уравнений (СЛАУ)



Нулевой – вектор, все компоненты которого равны нулю и обозначается в тексте программы как: a=[0;0;0]; a= zeros(3,1);

Транспонированный - вектор at= a’;

Матрица единичная E=[1 0 0;0 1 0;0 0 1]; E=eye(3);

Транспонированная – матрица, в которой строки заменены на соответствующие столбцы  AT=A’;

Равенство матриц  т.е. aij= bij где i=1,2,3,…,n j=1,2,3,…,m

Норма (длина) вектора  nor=sqrt(sum(a.^2)); nor=norm(a);

Норма матрицы (Эвклидова) Nor_A=sqrt(sum(A.^2)); Nor_A=norm(A,’fro’);

Складывать или вычитать можно только вектора с одинаковой размерностью  c=a+b;

Складывать или вычитать можно только матрицы с одинаковой размерностью  C=A+B;

Умножение вектора на константу.  c=λ*b;

Умножение матрицы на константу  C= λ *B;

Скалярное произведение векторов Это значение суммы произведений соответствующих компонент двух векторов.  z=a’ * b;

Угол между векторами. Косинус угла  r=a’*b/(norm(a)*norm(b))

Умножение матриц  Количество столбцов матрицы  должно равняться количеству строк матрицы  Элемент  вычисляется как скалярное произведение i-й строки матрицы  и j-го столбца матрицы  C=A*B;

Обратной матрицей называется такая квадратная матрица при умножении которой на исходную как справа так и слева получается единичная матрица  AO=inv(A);

Обращение матрицы  методом Гаусса-Жордана заключается в построении расширенной матрицы  и преобразовании расширенной матрицы так, чтобы на месте исходной получилась единичная матрица, тогда на месте единичной получится обратная матрица:  

Метод Гаусса-Жордана состоит из четырёх этапов

1) Строим расширенную матрицу дописав к исходной квадратной матрице единичную матрицу того же размера  и задаём номер ведущей строки k=1. E=eye(n); C=[A,E];

2) Делим элементы k-й строки начиная с k-ого на  

 j = k,k+1,k+2,…,2·n т.е.  =1.

3) Преобразуем все i-е строки кроме k-й, i=1,2,3,…,n i≠k так, чтобы элементы cik=0. Для этого из каждого элемента i-й строки начиная с k-ого вычитаем соответствующий элемент k-й строки, умноженный на элемент cik, т.е.

4) Проверяем условие k<n, если оно справедливо, то k=k+1 и выполняем алгоритм с пункта 2, иначе выводим полученную обратную матрицу, расположенную на месте единичной.

Система линейных алгебраических уравнений (СЛАУ). В общем виде СЛАУ можно записать в следующем виде  

Совокупность коэффициентов , i =1,2,3,…,n; j=1,2,3,….,m системы можно представить в виде матрицы:  

Совокупность неизвестных  в виде вектора  Совокупность неизвестных  в виде вектора

Используя выше приведенные определения, запишем СЛАУ в матричном виде:  Решить СЛАУ значить найти такие значения вектора x, подстановка которого в систему, обращает каждое уравнение этой системы в тождество

Классификация СЛАУ. СЛАУ называется: Переобусловленной, если n>m. Недообусловленой, если n<m. Нормальной, если n=m. Однородной, если вектор . Неоднородной, если вектор . Если система, имеет хотя бы одно решение, она называется совместной. Система, не имеющая решений, называется несовместной. Совместная система, имеющая единственное решение, называется определенной, а имеющая бесчисленное множество решений, называется неопределенной. Очевидно, что однородная система всегда совместна, так как имеет хотя бы одно решение , которое называется тривиальным.

Все методы решения СЛАУ можно разделить на две группы: точные и итерационные.

Точные методы позволяют получить решение путем выполнения определённого и точного количества арифметических операций. При этом погрешность решения определяется лишь точностью представления исходных данных и точностью вычислительных операций.
Итерационные методы дают некоторую последовательность приближений к решению. Пределом этой последовательности является решение системы уравнений. Решение, возможно, определить лишь с некоторой, как правило, заданной степенью точности e. Количество итераций для достижения требуемой точности решения определяется величиной e, выбором начального приближения и видом системы уравнений.

Точные методы: Метод обратной матрицы  x=inv(A)*b x=A\b

Метод Гаусса. Метод Гаусса включает два этапа:

Первый этап (прямой ход) заключается в последовательном исключении неизвестных из системы уравнений и состоит из n–1 шага. На первом шаге с помощью первого уравнения исключается x1 из всех последующих уравнений начиная со второго, на втором шаге с помощью второго уравнения исключается x2 из последующих уравнений начиная с третьего и т.д. Последним исключается xn-1 из последнего n-го уравнения так, что последнее уравнение будет содержать только одно неизвестное xn. Такое последовательное исключение неизвестных равносильно приведению матрицы коэффициентов к треугольному виду. Строка, с помощью которой исключаются неизвестные, называется ведущей строкой, а диагональный элемент в этой строке – ведущим элементом.

Второй этап (обратный ход) заключается в последовательном вычислении искомых неизвестных и состоит из n шагов. Решая последнее уравнение, находим неизвестное xn. Далее используя это значение из предыдущего уравнения вычисляем неизвестное xn-1 и т.д. Последним найдем неизвестное x1 из первого уравнения.

Матрица, содержащая помимо. коэффициентов при неизвестных столбец свободных членов  , называется расширенной

1) Строим расширенную матрицу  размерностью n на n+1, приписав, справа к матрице  вектор  т.е. ci,j=ai,j, ci,n+1=bi, где i=1,2,3,…,n j=1,2,3,…,n  Задаем номер ведущей строки k = 1

2) Преобразуем все строки, расположенные ниже k-ой так, чтобы элементы cik=0, для этого вычисляем множитель b=-сi,k/ck,k и каждую i-ую строку заменяем суммой i–ой и k-ой умноженной на b, т.е. ci,j=ci,j+b*ck,j где i = k+1,k+2,k+3,….,n и j = k,k+1,k+2,…,n+1

3) Проверяем k = n-1 если нет, то выбираем новую ведущую строку k=k+1 и переходим на пункт 2, иначе выполняем пункт 4.

4) Обратный ход. Из последнего n-ого уравнения определяем последнее n-ое неизвестное. xn=cn,n+1/cn,n Последовательно, из предыдущих уравнений начиная с i=n-1, вычисляем соответствующие неизвестные xi. Последним, определяется первое неизвестное из первого уравнения

Для уменьшения погрешности вычислений используют модификации метода Гаусса, которые определяются выбора«ведущего» элемента. В модификации с частичным выбором на каждом k-м шаге прямого хода в качестве «ведущего» выбирается наибольший по модулю элемент из неприведённой части k-го столбца матрицы, т.е.  Строка, содержащая этот элемент, переставляется с k-й строкой расширенной матрицы

При полном выборе в качестве «ведущего» элемента выбирается максимальный по модулю элемент из всей неприведённой части матрицы коэффициентов системы:  Для этого осуществляется необходимая перестановка как строк, так и столбцов в расширенной матрице коэффициентов. При этом следует помнить, что перестановка столбцов равносильна переименованию неизвестных.

Обусловленность систем линейных алгебраических уравнений. Если система плохо обусловлена, то это значит, что погрешности коэффициентов матрицы и свободных членов или погрешность округления при расчетах могут сильно исказить решение.

Исходную систему уравнений  с учетом погрешности в векторе  запишем как  или  и тогда , отсюда можно выразить ошибку . Абсолютную погрешность определим, как норму ошибки  или . Определим относительную погрешность  . Определим  

Из исходной системы  получим  далее определим  и подставим в определение относительной погрешности, получим

Вводим понятие числа обусловленности:  и тогда .

Метод простых итераций. Алгоритм метода состоит из трёх этапов.

Первый этап. Приведение СЛАУ к итерационному виду, для этого разрешим каждое уравнение относительно соответствующего неизвестного:  Тогда итерационную формулу запишем в виде:  где вектор  – приведенный столбец свободных членов,  – приведенная матрица коэффициентов

Второй этап. Проверяем условие сходимости  если условие не выполняется, то преобразуем исходную систему и выполняем 1-й этап.

Третий этап. Осуществляем уточнение решения по полученной итерационной формуле  За начальное приближение принимается  Условием окончания итерационного процесса является выполнение условия  где величина ε определяет точность получаемого решения, а  – смежные приближения к решению.

Программа решения СЛАУ. Простые итерации.

function DATA

global A b eps n;

eps=0.4;

n=3;

A=[4 1 1; 2 5.5 1; 2 1 4];

b=[6;8.5;7];

end

 

function [ x ] = fun_SLAU_Prost_Iterac(A,b,n,eps)

for i=1:n

for j=1:n

   if i==j

       C(i,j)=0;

   else

       C(i,j)=A(i,j)/A(i,i);

   end %if

end %for j

end %for i

for i=1:n

d(i)=b(i)/A(i,i);

end % for i

d=d';

 if norm(C, 'fro')<=1

x0=d;

for i=1:100

    x1=d-C*x0;

    if norm(x1-x0)<=eps

        i

        x=x1;

        break;

    else

        x0=x1;

    end %if

end %for i

 else

disp('||C||>1');

x=zeros(n);

 end %if

 end % function

 

function GLAV_SLAU_Prost_Iterac

global A b eps n x;

DATA;

[ x ] = fun_SLAU_Prost_Iterac(A,b,n,eps);

REPORT;

end

 

function REPORT

global A b eps n x;

disp('Arguments SLAU_Prost_Iterac');

disp('matrix A');

A

disp('Column b');

b

disp(['eps = ' num2str(eps,'%10.5f') ]);

disp('Results SLAU_Prost_Iterac');

disp('Column of variables');

x

disp('Ax-b');

A*x-b

end

 



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 53; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.189.177 (0.045 с.)