Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
91
Добавлен:
17.04.2013
Размер:
93.18 Кб
Скачать

Лабораторная

работа №3

по

численным методам.

Вариант 02.

Выполнила:

Никитушкина Евгения

ЭКТ-35

Проверил:

Мустафин Н.Н.

МИЭТ

2001

Задача лабораторной работы состоит в том, чтобы найти корни системы

методом прогонки, методом Зейделя и QR-разложеннием с помощью программы MatLab.

1. Метод прогонки.

Прямой ход.

Обратный ход.

Проверка.

Выполнение работы.

Введем коэффициенты:

c1=24

b1=5

a2=-4

c2=22

b2=3

r1=2

r2=-3

a3=-5

c3=22

b3=4

r3=-5

a4=3

c4=15

b4=4

r4=-8

a5=4

c5=23

r5=10

A=[a2,a3,a4,a5]

B=[b2,b3,b4,0]

C=[c2,c3,c4,c5]

R=[r2,r3,r4,r5]

al=[0,0,0,0,0]

be=[0,0,0,0,0]

Организуем цикл для промежуточных коэффициентов:

i=2

while i<=5

k=i-1

al(1,i)=-(B(1,k))/(C(1,k)+(A(1,k))*al(1,k))

be(1,i)=-((A(1,k))*be(1,k)-R(1,k))/(C(1,k)+(A(1,k))*al(1,k))

i=i+1

end

Найдем аргументы:

X(5,1)=-((A(1,4))*be(1,4)-R(1,4))/(C(1,4)+(A(1,4))*al(1,4))

X(4,1)=(al(1,5))*X(5,1)+be(1,5)

X(3,1)=(al(1,4))*X(4,1)+be(1,4)

X(2,1)=(al(1,3))*X(3,1)+be(1,3)

X(1,1)=(al(1,2))*X(2,1)+be(1,2)

Сделаем проверку:

v1=al(1,2)

v2=-B(1,1)/(C(1,1)+(A(1,1))*al(1,1))

v3=-B(1,1)/C(1,1)

v4=(A(1,2))*(X(1,1))+(C(1,2))*(X(2,1))+(B(1,2))*(X(3,1))

v5=R(1,2)

В результате выполнения данного m-файла получим:

v1=-0.1364

v2=-0.1364

v3=-0.1364

v4=-5

v5=-5

Таким образом можно сделать вывод, что найденные значения Х истинны.

2.Метод Зейделя.

Он состоит в том, что итерации производятся по формуле

Осуществим программу:

A=[24 5 0 0 0;-4 22 3 0 0;0 -5 22 4 0;0 0 3 15 4;0 0 0 4 23]

b=[2;-3;-5;-8;10]

d1=b(1)/A(1,1);

d2=b(2)/A(2,2);

d3=b(3)/A(3,3);

d4=b(4)/A(4,4);

d5=b(5)/A(5,5);

d=[d1;d2;d3;d4;d5]

c11=0;

c22=0;

c33=0;

c44=0;

c55=0;

c12=-A(1,2)/A(1,1);

c13=-A(1,3)/A(1,1);

c14=-A(1,4)/A(1,1);

c15=-A(1,5)/A(1,1);

c21=-A(2,1)/A(2,2);

c23=-A(2,3)/A(2,2);

c24=-A(2,4)/A(2,2);

c25=-A(2,5)/A(2,2);

c31=-A(3,1)/A(3,3);

c32=-A(3,2)/A(3,3);

c34=-A(3,4)/A(3,3);

c35=-A(3,5)/A(3,3);

c41=-A(4,1)/A(4,4);

c42=-A(4,2)/A(4,4);

c43=-A(4,3)/A(4,4);

c45=-A(4,5)/A(4,4);

c51=-A(5,1)/A(5,5);

c52=-A(5,2)/A(5,5);

c53=-A(5,3)/A(5,5);

c54=-A(5,4)/A(5,5);

C=[c11 c12 c13 c14 c15;c21 c22 c23 c24 c25;c31 c32 c33 c34 c35;c41 c42 c43 c44 c45;c51 c52 c53 c54 c55]

n=5

X=[1 1 1 1 1];

i=1;

S1=0;

S2=C(i,2)*X(2)+C(i,3)*X(3)+C(i,4)*X(4)+C(i,5)*X(5);

X(i)=S1+S2+d(i);

i=2;

S1=C(i,1)*X(1);

S2=C(i,3)*X(3)+C(i,4)*X(4)+C(i,5)*X(5);

X(i)=S1+S2+d(i);

i=3;

S1=C(i,1)*X(1)+C(i,2)*X(2);

S2=C(i,4)*X(4)+C(i,5)*X(5);

X(i)=S1+S2+d(i);

i=4;

S1=C(i,1)*X(1)+C(i,2)*X(2)+C(i,3)*X(3);

S2=C(i,5)*X(5);

X(i)=S1+S2+d(i);

i=5;

S1=C(i,1)*X(1)+C(i,2)*X(2)+C(i,3)*X(3)+C(i,4)*X(4);

S2=0;

X

Последнюю часть программы, выделенную курсивом, повторим несколько раз (в данном случае понадобилось 7), пока не добьемся совпадения двух последующих результатов. В итоге имеем:

значения, полученные двумя данными методами совпали.

3. QR-разложение:

Матрица A

22.2411

0.2243

2.5269

0.8546

0.1429

0.2992

1.6444

0.2243

15.0686

0.3210

0.1392

0.7169

0.7332

1.2501

2.5269

0.3210

11.4499

4.4280

4.5615

0.2252

1.7534

0.8546

0.1392

4.4280

12.5909

3.7304

1.3099

8.9095

0.1429

0.7169

4.5615

3.7304

9.4989

0.5341

13.4554

0.2992

0.7332

0.2252

1.3099

0.5341

18.0873

1.1696

1.6444

1.2501

1.7534

8.9095

13.4554

1.1696

19.4314

~20x [Q,R]=qr(A); A=R*Q

35.1648

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

22.2222

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

18.0552

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

14.9125

0.0001

0.0000

0.0000

0.0000

0.0000

0.0000

0.0001

11.5152

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

7.8195

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

0.0000

-1.3214

eig(B)

14.9125

18.0552

11.5152

7.8195

22.2222

-1.3214

35.1648

Соседние файлы в папке other