sprawozdanie nr 2

Grzegorz Pasek 171604

METODY NUMERYCZNE – SPRAWOZDANIE NR 2

·Rozwiązywanie układów równań liniowych

Zad 1

Należało napisać i zaimplementować algorytmy rozwiązań układów równań liniowych metodą Gaussa, Gaussa z częściowym wyborem elementu głównego oraz Gaussa z pełnym wyborem elementu głównego.

Należało przetestować algorytmy na układach z losowo wygenerowanymi liczbami dla macierzy:

Małej, 2x2 podanej na liście,

Vandermonde’a

Trójprzekątniowej z oraz bez dominującej przekątnej.

Implementację rozpocząłem od algorytmu Gaussa bez wyboru elementu głównego.

i=1;

j=1;

imax=a+1;

jmax=b;

pam=0;

poczatek=0;

k=1;

koniec=0;

while j<=a-1

poczatek=0;

while A(i+j-1,j)==0 && i<9 %czy mamy zero ?

i=i+1;

end

if i+j-1==j && poczatek==0 %nie mamy zera i jestesmy w pierwszym wersie

i=i+1;

if A(i+j-1,j)==0 %wers drugi jest zerowy

pam=i;

while koniec==0 && i+j-1<=imax && A(i+j-1,j)==0 %szukamy niezerowego wersa

i=i+1;

if i+j-1==imax

koniec=1;

end

end %tu powinno byc sprawdzanie czy wypadlismy z zakresu

while k<=jmax && koniec==0%przepisanie na tymczasowe zeby nie zgubic danych

tymcz(k)=A(pam+j-1,k);

tymcz2(k)=A(i+j-1,k);

k=k+1;

end

k=j;

while k<=jmax && koniec ==0%przepisanie z tymczasowych

A(i+j-1,k)=tymcz(k);

A(pam+j-1,k)=tymcz2(k);

k=k+1;

end

k=j;

i=1;

poczatek=1; %spadamy na poczatek

end

if A(i+j-1,j)~=0 && poczatek==0 &&koniec==0%wers drugi nie jest zerowy

k=j;

wspolcz=-A(i+j-1,k)/A(i+j-1-1,k);

while k<=jmax

A(i+j-1,k)=A(i+j-1,k)+wspolcz*A(i+j-1-1,k);

k=k+1;

end

k=j;

i=1;

poczatek=1;

end

end

if i+j-1~=1 && poczatek ==0 && koniec==0 %nie jestesmy w pierwszym wersie i nie mamy zera

while k<=jmax %przepisanie na tymczasowe zeby nie zgubic danych

tymcz(k)=A(1,k);

tymcz2(k)=A(i+j-1,k);

k=k+1;

end

k=j;

while k<=jmax %przepisanie z tymczasowych

A(1,k)=tymcz2(k);

A(i+j-1,k)=tymcz(k);

k=k+1;

end

k=j;

i=1;

end

if koniec==1

j=j+1;

koniec=0;

end

end

A

wyniki=rand(a,1);

x=zeros(a,1);

indeks=a;

k=1;

suma=0;

while indeks>0

while k<=a

suma=(suma+x(k)*A(indeks,k));

k=k+1;

end

x(indeks)= (wyniki(indeks)-suma)/A(indeks,indeks);

indeks=indeks-1;

k=1;

suma=0;

end

blad=norm(A*x-wyniki);

blad

Następnie zaimplementowałem algorytm Gaussa z częściowym wyborem elementu głównego:

<jedyną różnicą między poprzednim programem a tym było to, że dodałem flagę wyboru elementu głównego i funkcję do niej przypisaną, która wykonuje się dokładnie raz przy przejściu z każdego wiersza>

if wyb_elem_gl==1

pami=A(k,j);

pamw=k;

while k<a

if A(k+1,j)>pami

pami=A(k+1,j);

pamw=k+1;

end

k=k+1;

end

k=j;

while k<=jmax

tymcz(k)=A(j,k);

tymcz2(k)=A(pamw,k);

k=k+1;

end

k=j;

while k<=jmax

A(j,k)=tymcz2(k);

A(pamw,k)=tymcz(k);

k=k+1;

end

k=j;

wyb_elem_gl=0;

end

Na koniec poprawiłem program żeby dokonywał pełnego wyboru elementu głównego:

if wyb_elem_gl==1

pami=A(k,j);

pamw=k;

pamk=j;

c=j;

while c<=b

while k<=a

if A(k,c)>pami

pami=A(k,c);

pamw=k;

pamk=c;

end

k=k+1;

end

k=j;

c=c+1;

end

c=j;

while k<=jmax %zamiana wierszy

tymcz(k)=A(j,k);

tymcz2(k)=A(pamw,k);

k=k+1;

end

k=j;

while k<=jmax

A(j,k)=tymcz2(k);

A(pamw,k)=tymcz(k);

k=k+1;

end

while c<=a %zamiana kolumn

temp(c)=A(c, pamk);

temp2(c)=A(c,j);

c=c+1;

end

c=j;

while c<=a

A(c,pamk)=temp2(c);

A(c,j)=temp(c);

c=c+1;

end

c=j;

k=j;

wyb_elem_gl=0;

end

M1 Macierz: 2x2 10x10 15x15 20x20
Zadana 0 --- --- ---
Vandermonde’a 0 1.8200e-007 1.6004e-009 7.9950e-006
Trójprzek. B gl 1.1102e-016 2.719037e-16 2.25905e-16 3.62045e-16
Trójprzek. Z gl 1.122302e-16 5.561943e-17 2.02063e-16 1.66735e-16
M2
Zadana 0 --- --- ---
Vandermonde’a 0 1.27106e-006 2.3350e-006 0.001419
Trójprzek. B gl 0 8.233637e-16 2.80457e-16 7.098052e-16
Trójprzek. Z gl 0 4.710275e-16 2.00148e-16 2.220413e-16
M3
Zadana 0 --- --- ---
Vandermonde’a 0 1.30098e-06 2.1277e-014 0.00516095
Trójprzek. B gl 0 5.26652e-16 3.04059e-16 7.18052e-16
Trójprzek. Z gl 0 2.48253e-16 5.5511e-017 2.93103e-16

M1-metoda bez wyboru elementu głównego
M2-metoda z częściowym wyborem elem. głównego
M3-metoda z całkowitym wyborem elem. głównego


Wyszukiwarka

Podobne podstrony:
Sprawozdanie nr 1 CECHY TECHNICZNE MATERIAfLOW BUDOWLANYCH, Budownictwo studia pł, sprawka maater
Sprawozdanie Nr. 8 (ilościowa), AGH WIMiC, Rok II, Chemia Nieograniczna ROK II, Laboratoria
Sprawozdanie nr. 2, MEDYCYNA, Biochemia
SPRAWOZDANIE NR 1, ZiIP, II Rok ZIP, Metrologia, Sprawozdanie nr 1
sprawozdanie nr 2 (1)
Sprawozdanie nr 6
Sprawozdanie nr 4 ?ment ?dania
Sprawozdanie Nr 3
Sprawozdanie nr 4 Oznaczanie odczynu i twardości wody
Sprawozdanie nr 7 druk
SPRAWOZDANIE NR 2
Elektronika Sprawozdanie nr 5
Sprawozdanie nr 5
Sprawozdanie nr 8 chem
Sprawozdanie nr 4 III sem
Sprawozdanie nr 4
SPRAWOZDANIE NR 3
Sprawozdanie nr 3 z zajęć laboratoryjnych z chemii
Sprawozdanie nr
[I7G2S1] Sprawozdanie nr 2

więcej podobnych podstron