metody cw2

INSTYTUT AUTOMATYKI

ZAKŁAD TEORII STEROWANIA

Semestr: IV

Wydział: EEIiA

Grupa: 4C4, czwartek 1215

LABORATORIUM METOD NUMERYCZNYCH

Ćwiczenie nr 2

Temat: Numeryczne zagadnienia algebry liniowej

Imię i Nazwisko

Nr indeksu

Pakosz Mateusz

163574

Majewski Marcin

163558

Celem ćwiczenia było zapoznanie się z podstawowymi zagadnieniami numerycznymi algebry liniowej – w naszym przypadku skupiliśmy się głównie na eliminacji Gaussa, prowadzącej do rozkładu LU oraz na porównaniu poszczególnych działań na macierzach (porównanie prędkości ich wykonania w Matlabie).

Eliminacja Gaussa bez wyboru elementu głównego:

function [L, U] = bezwyboru(A)

b=size(A);

b=b(1);

U=A;

L=eye(size(A));

for a=1:(b-1)

for i=a:(b-1)

L(i+1,a)=U(i+1,a)/U(a,a);

U(i+1,:)=U(i+1,:)-U(i+1,a)/U(a,a)*U(a,:);

end

end

Eliminacja Gaussa z częściowym wyborem elementu głównego:

function [L, U] = zwyborem(A)

b=size(A);

b=b(1);

U=A;

L=eye(b);

for a=1:(b-1)

C=0;

for j=1:(b-a+1)

C(j)=abs(U(j-1+a,a));

end

for j=a:b

if max(C)==abs(U(j,a))

index=j;

end

end

if max(C)~=0

D=U(a,:);

U(a,:)=U(index,:);

U(index,:)=D;

for k=-a+1:-1

D=L(a,-k);

L(a,-k)=L(index,-k);

L(index,-k)=D;

end

for i=a:(b-1)

L(i+1,a)=U(i+1,a)/U(a,a);

U(i+1,:)=U(i+1,:)-U(i+1,a)/U(a,a)*U(a,:);

end

end

end

Zastosowanie eliminacji Gaussa z częściowym wyborem elementu głównego lub bez wyboru elementu głównego zależy od warunków zadania. Eliminację z częściowym wyborem elementu głównego zastosujemy gdy na diagonalnej znajdują się zera lub wartości o bardzo małej wartości bezwzględnej, zmniejszy to błąd zaokrągleń i nie spowoduje zatrzymania algorytmu. Eliminację Gaussa bez wyboru elementu głównego można zastosować kiedy w macierzy występują wartości całkowite.

Pomiar czasu

function [iloczyn,wyznacznik,slad,LU]=czas(N)

A=tstcnd(N)

B=tstcnd(N)

tic

for i=1:100

end

toc

p=toc

tic

for i=1:100

C=A*B

end

toc

a=toc

iloczyn=a/100-p;

tic

for i=1:100

det(A)

end

b=toc

wyznacznik=b/100-p;

tic

for i=1:100

trace(A)

end

toc

c=toc

slad=c/100-p;

tic

for i=1:100

lu(A)

end

toc

d=toc

LU=d/100-p;

disp(iloczyn)

disp(wyznacznik)

disp(slad)

disp(LU)

Wielkość macierzy Wyznacznik Ślad Iloczyn LU
2 8.7980e-005 1.0470e-004 2.3030e-005 1.0910e-004
4 2.5573e-005 1.9276e-005 8.3811e-005 2.4059e-004
8 1.6075e-004 8.4109e-005 0.0020 2.4363e-004
16 4.8006e-005 2.1959e-005 7.8761e-004 7.6916e-004
32 5.3571e-005 2.1010e-005 0.0039 0.0039

Związek zmian wskaźnika uwarunkowania z wielkością zmian rozwiązania układu równań liniowych

Macierz dobrze uwarunkowana

A=tstmat(5)

A =

77 -20 -44 46 -198

-3 -106 -126 -187 -346

-5 201 -166 -128 -215

-118 -33 375 -26 49

151 -87 246 117 58

Cond(A)= 8.9687

x=[-3 ;8 ;-4; -2; -4]

b=[485; 1423 ;3403; -1554; -2599]

function []= zaburzenie1()

for i=1:30

%A-macierz ,b-wektor wynikowy

A=[77 -20 -44 46 -198;-3 -106 -126 -187 -346;-5 201 -166 -128 -215; -118 -33 375 -26 49;151 -87 246 117 58];

x=[-3 ;8 ;-4; -2; -4];

b=[485; 1423 ;3403; -1554; -2599];

%zmiana w A

macierzA=inv(A)*b;

epsilon(1,i)=0.001*i;

A(1,1)=(A(1,1)*(1+epsilon(1,i)));

macierzA2=inv(A)*b;

zab(1,i)=norm(macierzA-macierzA2);

%zmiana elementu w b

b(1,1)=(b(1,1)*(1+epsilon(1,i)));

macierzA3=inv(A)*b

zab2(2,i)=norm(macierzA-macierzA3);

end

%wykresy

subplot(2,1,1);plot(epsilon(1,:),zab(1,:),'.r')

xlabel('zaburzenie');

ylabel('norma macierzy');

title('Zaburzenie macierzy (dobrze uwarunkowana)');

subplot(2,1,2);plot(epsilon(1,:),zab2(2,:),'.k')

xlabel('zaburzenie');

ylabel('norma macierzy');

title('Zaburzenie wektora b');

end

:

Macierz źle uwarunkowana

A=tstcnd(5)

A =

-625964 -21959 -119877 -455246 792434

611825 20965 115874 442731 -771741

18887 474 3127 12892 -22852

309459 10879 59323 225163 -391882

617222 21466 117718 448054 -780323

Cond(A)= 8.7748e+006

x =[-3;8;-4;-2;-4]

b=[-77516; 70251;247; 3856;74374]

m-plik

function []= metody3b()

for i=1:30

%A-macierz ,b-wektor wynikowy

A=[-625964 -21959 -119877 -455246 792434; 611825 20965 115874 442731 -771741; 18887 474 3127 12892 -22852; 309459 10879 59323 225163 -391882; 617222 21466 117718 448054 -780323];

x =[-3;8;-4;-2;-4];

b=[-77516; 70251;247; 3856;74374];

%zmiana w A

macierzAA1=inv(A)*b;

epsilon(1,i)=0.001*i;

A(1,1)=(A(1,1)*(1+epsilon(1,i)));

macierzAA2=inv(A)*b;

zab(1,i)=norm(macierzAA1-macierzAA2);

%zmiana elementu w b

b(1,1)=(b(1,1)*(1+epsilon(1,i)));

macierzAA3=inv(A)*b

zab2(2,i)=norm(macierzAA1-macierzAA3);

%wykresy

subplot(2,1,1);plot(epsilon(1,:),zab(1,:),'.r')

xlabel('zaburzenie');

ylabel('norma macierzy');

title('Zaburzenie macierzy (źle uwarunkowana)');

subplot(2,1,2);plot(epsilon(1,:),zab2(2,:),'.m')

xlabel('zaburzenie');

ylabel('norma macierzy');

title('Zaburzenie wektora b');

end

Wnioski:

Eliminacja Gaussa z częściowym wyborem elementu jest dokładniejsza od eliminacji Gaussa bez wyboru elementu głównego.Eliminacja Gaussa bez wybiru elementu głównego zawodzi jeżeli na głównej przekątnej znajdują się elementy zerowe lub bliskie zeru. Nastepuje wtedy utrata cyfr znaczących.

Można także zauważyć ze zmiana jednego elementu macierzy wpływa bardziej na uwarunkowanie niż zmiana wszystkich elementów.


Wyszukiwarka

Podobne podstrony:
metody cw2 (1)
TOR cw2 - dr Pusz, metody i srodki ochrony roślin, pusz
Metody statystyczne cw2, Matematyka, Kombinatoryka, prawdopodobieństwo, statystyka, metody statystyc
PISZCZEK M-ćw2 - przewodnik dla n-l cz1, Pedagogika specjalna UAM, Semestr IV, Metodyka z głębszą
TOR cw2 - dr Pusz, metody i srodki ochrony roślin, pusz
T 3[1] METODY DIAGNOZOWANIA I ROZWIAZYWANIA PROBLEMOW
10 Metody otrzymywania zwierzat transgenicznychid 10950 ppt
metodyka 3
organizacja i metodyka pracy sluzby bhp
metodyka, metody proaktywne metodyka wf
epidemiologia metody,A Kusińska,K Mitręga,M Pałka,K Orszulik 3B
GMO metody wykrywania 2
Metody i cele badawcze w psychologii
E learning Współczesne metody nauczania
Tradycyjne metody nauczania w medycynie 2
Fwd dydaktyka, Metody alternatywne

więcej podobnych podstron