Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ДЗ _ САВ.doc
Скачиваний:
2
Добавлен:
12.11.2019
Размер:
286.72 Кб
Скачать

1.2. Пример выполнения задания Постановка задачи

Решить систему линейных алгебраических уравнений вида

Дана система линейных алгебраических уравнений:

,

где

  1. Метод Гаусса с выбором главного элемента.

Суть метода Гаусса заключается в последовательном исключении элементов. Для этого поэтапно приводим систему (1) к треугольному виду, исключая последовательно из второго, третьего, … , n-го уравнений, затем из третьего, четвёртого, … , n-го уравнений преобразованной системы и т.д.

Практическая часть (листинг программы MatLab):

function gauss

clc

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 ];

max=0;

x=[0;0;0;0];

x1=[0;0;0;0];

ind=[1;2;3;4];

t=0;

a1=0;

b1=0;

n=4;

ind1=0;

k=1;

A,b

for k=1:n-1

max=abs(A(k,k));

for n1=k:4

for s=k:4

if(abs(A(n1,s))>max),

max=abs(A(n1,s));

mi=n1;

mj=s;

end;

end;

end;

b1=b(mi);

b(mi)=b(k);

b(k)=b1;

for n2=k:4

a1=A(mi,n2);

A(mi,n2)=A(k,n2);

A(k,n2)=a1;

end;

for n3=1:4

a1=A(n3,mj);

A(n3,mj)=A(n3,k);

A(n3,k)=a1;

end;

ind1=ind(mj);

ind(mj)=ind(k);

ind(k)=ind1;

for i=(k+1):4

t=A(i,k)./A(k,k);

b(i)=b(i)-b(k).*t;

for j=k:4

A(i,j)=A(i,j)-A(k,j).*t;

end;

end ;

end;

x(4,1)=b(4,1)/A(4,4);

x(3,1)=(b(3,1)-A(3,4)*x(4,1))/A(3,3);

x(2,1)=(b(2,1)-A(2,3)*x(3,1)-A(2,4)*x(4,1))/A(2,2);

x(1,1)=(b(1,1)-A(1,2)*x(2,1)-A(1,3)*x(3,1)-A(1,4)*x(4,1))/A(1,1);

x1(1,1)=x(ind(1),1);

x1(2,1)=x(ind(2),1);

x1(3,1)=x(ind(3),1);

x1(4,1)=x(ind(4),1);

x1

x

Результат работы алгоритма:

>> gauss

A =

-0.6800 -0.1800 0.0200 0.2100

0.1600 -0.8800 -0.1400 0.2700

0.3700 0.2700 -1.0200 -0.2400

0.1200 0.2100 -0.1800 -0.7500

b =

-1.8300

0.6500

-2.2300

1.1300

x1 =

-1.5106

3.2266

2.4731

-2.3083

x =

2.4731

-1.5106

3.2266

-2.3083

  1. LU-разложение.

Теорема: если главные миноры квадратной матрицы А отличны от нуля, то существуют такие нижняя L и верхняя U треугольные матрицы, что A=LU. Если элементы диагонали одной из матриц L или U фиксированы (ненулевые), то такое разложение единственно.

Если матрица А исходной системы разложена в произведение треугольных матриц L и U, то вместо Ax=b можно записать эквивалентное уравнение LUx=b. Введя вектор вспомогательных переменных , последнее можно переписать в виде системы

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

Практическая часть (листинг программы MatLab)

function LULU;

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

B=[-1.83; 0.65; -2.23; 1.13];

B

X=zeros(4,1);

Y=zeros(4,1);

U=zeros(4,4);

L=zeros(4,4);

for i=1:4,

for j=i:4,

if i==j,

L(i,j)=1;

end

end

end

U(1,1)=A(1,1);

U(1,2)=A(1,2);

U(1,3)=A(1,3);

U(1,4)=A(1,4);

L(2,1)=A(2,1)/U(1,1);

L(3,1)=A(3,1)/U(1,1);

L(4,1)=A(4,1)/U(1,1);

U(2,2)=A(2,2)-L(2,1)*U(1,2);

U(2,3)=A(2,3)-L(2,1)*U(1,3);

U(2,4)=A(2,4)-L(2,1)*U(1,4);

L(3,2)=(A(3,2)-L(3,1)*U(1,2))/U(2,2);

U(3,3)=A(3,3)-L(3,1)*U(1,3)-L(3,2)*U(2,3);

U(3,4)=A(3,4)-L(3,1)*U(1,4)-L(3,2)*U(2,4);

L(4,2)=(A(4,2)-L(4,1)*U(1,2))/U(2,2);

L(4,3)=(A(4,3)-L(4,1)*U(1,3)-L(4,2)*U(2,3))/U(3,3);

U(4,4)=A(4,4)-L(4,1)*U(1,4)-L(4,2)*U(2,4)-L(4,3)*U(3,4);

L

U

Y=L\B;X=U\Y;

X1=X(1);X2=X(2);X3=X(3);X4=X(4);

X