Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

DZ-num_met_fin_mat

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji siročići (oni koji nemaju svoj podforum) -> Kolegiji vezani uz ekonomiju i financije
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
drcudo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 06. 03. 2008. (00:14:38)
Postovi: (17)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
14 = 15 - 1

PostPostano: 1:00 sri, 15. 4. 2009    Naslov: DZ-num_met_fin_mat Citirajte i odgovorite

Profesorica me zamolila da vam napomenem jedan hint u vezi rijesavanja domace zadace.
Hint je vezan samo za prvi zadatak.

Ovako, problem nastupa kod onog djela zadatka gdje se trazi nalazenje maksimalne svojstvene vrijednosti pomocu metode potencije.No s obzirom da bi los odabir matrice ta metoda mogla jako slabo konvergirati, profesorica je predlozila da vam prenesem kako bi se taj dio trebao popraviti. Ako je broj iteracija veci od 100 i ako se u meduvremenu nije postigla konvergencija onda jedino tada se spektralni radijus(apsolutna vrijednost maks. svojstvene vrijednosti) racuna pomocu max(abs(eig(A))).Inace se racuna pomocu metode potencija.

Da pojasnim,neki su stavili naredbu ro(br)=max(abs(eig(T)));
ali to nije sasvim tocno. Naime treba napraviti da se taj dio koda racuna pomocu metode potencija.

Pomocu metode potencija dobivamo rijesenje koje je jednako svojstvenom vektoru za maksimalnu svojstvenu vrijednost za pripadnu matricu.Ako imamo svojstveni vektor nije tesko dobiti sojstvenu vrijednost. Naime

lambda_max=x0'*T*x0/(x0'*x0); (A to je zapravo nas sektralni radijus)

Ja sam taj dio rijesio tako da sam u programu metoda_potencija uveo i izlaznu varijablu flag kojeg sam inicijalizirao na 1, i kada se provjerava uvjet whle petlje sam stavio i da se provijeri kolika je vrijednost od flag.U
toj istoj petlji sam stavio i if naredbu koja mi sluzi da li je brojac br_it veci od 100 i ako uvjet konvergencije ne vrijedi onda se flag postavlja na 0.

Malo konkretnije,

while norm(A*x0-(x0'*A*x0)*x0)>=tol && flag==1
. . . .
if br_it > 100
if norm(A*x0-(x0'*A*x0)*x0)>=tol
flag=0;
end
end

A u programu sor_konvergencija sam ubacio

[x0,br_it,rez,flag]=metoda_potencija(T,x0,tol);
ro(br)=x0'*T*x0/(x0'*x0);
if flag==0
ro(br)=max(abs(eig(T)));
end

Evo, ja se stvarno nadam da sam pomogao. Ako vam nesto nije bilo jasno, slobodno me pitajte.
Profesorica me zamolila da vam napomenem jedan hint u vezi rijesavanja domace zadace.
Hint je vezan samo za prvi zadatak.

Ovako, problem nastupa kod onog djela zadatka gdje se trazi nalazenje maksimalne svojstvene vrijednosti pomocu metode potencije.No s obzirom da bi los odabir matrice ta metoda mogla jako slabo konvergirati, profesorica je predlozila da vam prenesem kako bi se taj dio trebao popraviti. Ako je broj iteracija veci od 100 i ako se u meduvremenu nije postigla konvergencija onda jedino tada se spektralni radijus(apsolutna vrijednost maks. svojstvene vrijednosti) racuna pomocu max(abs(eig(A))).Inace se racuna pomocu metode potencija.

Da pojasnim,neki su stavili naredbu ro(br)=max(abs(eig(T)));
ali to nije sasvim tocno. Naime treba napraviti da se taj dio koda racuna pomocu metode potencija.

Pomocu metode potencija dobivamo rijesenje koje je jednako svojstvenom vektoru za maksimalnu svojstvenu vrijednost za pripadnu matricu.Ako imamo svojstveni vektor nije tesko dobiti sojstvenu vrijednost. Naime

lambda_max=x0'*T*x0/(x0'*x0); (A to je zapravo nas sektralni radijus)

Ja sam taj dio rijesio tako da sam u programu metoda_potencija uveo i izlaznu varijablu flag kojeg sam inicijalizirao na 1, i kada se provjerava uvjet whle petlje sam stavio i da se provijeri kolika je vrijednost od flag.U
toj istoj petlji sam stavio i if naredbu koja mi sluzi da li je brojac br_it veci od 100 i ako uvjet konvergencije ne vrijedi onda se flag postavlja na 0.

Malo konkretnije,

while norm(A*x0-(x0'*A*x0)*x0)>=tol && flag==1
. . . .
if br_it > 100
if norm(A*x0-(x0'*A*x0)*x0)>=tol
flag=0;
end
end

A u programu sor_konvergencija sam ubacio

[x0,br_it,rez,flag]=metoda_potencija(T,x0,tol);
ro(br)=x0'*T*x0/(x0'*x0);
if flag==0
ro(br)=max(abs(eig(T)));
end

Evo, ja se stvarno nadam da sam pomogao. Ako vam nesto nije bilo jasno, slobodno me pitajte.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
drcudo
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 06. 03. 2008. (00:14:38)
Postovi: (17)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
14 = 15 - 1

PostPostano: 19:43 ned, 19. 4. 2009    Naslov: Citirajte i odgovorite

Mala napomena za racunanje schurove forme.

Ideja zadatka je da se matricu A svede na gornje trokutastu matricu dobivenu unitarnim slicnostima. Program se zasniva na rekurzijama.
Najprije treba provjeriti da li je dimenzija matrice jedan, te ako jest tada se vracaju pripadni parametri (U=1,T=H, ind_2x2=0,br_it=0),te isto tako za dimenziju 2 (T=H,U=eye(max(size(H)))).


E ako matrica nije tih dimenzija, tada se ide nalazit nule po matrici ispod glavne pozitivne dijagonale, ali bi trebalo prije toga provijeriti jos uvjet
abs(H(i+1,i))<=tol*(abs(H(i,i)+abs(H(i+1,i+1))))
te ako je to zadovoljeno treba postavljati da je H(i+1,i)=0;

Najbolje bi bilo sve te pozicije gdje ste nasli nule postaviti u neki vektor.
Pa se sada rekurzivno poziva na svaki od tih blokova koje ste dobili razdvajanjem pocetne matrice. Ali treba biti malo oprezan, jer se sa 1. blokom i zadnjim treba posebno napraviti te rekurzivne pozive, dok se za unutarnje blokove moze sve staviti u for petlju, naprimjer.

Nemojte zaboraviti da dobro postelate unitarne matrice.
Da vam pomognem jos malo, jedan od nacina dobivanja unitarne matrice U je da kada rastavljate na blokove dobivate pripadnu unitarnu matricu Ui koju ste dobili iz funkcije schur_qr i tu matricu mnozite sa npr. matricom M s desna tj M=MUi. Sada ste dobili neku unitarnu matricu koju jos treba pomnoziti sa originalnom matricom U tj. U=UM.

I napokon, treca solucija je da ako niste dobili blokove, niti imate matricu koja je dimenzije 1 ili 2 tada morate raditi iteraciju QR metode.

Sto se tice konvergencije metode konjugiranih gradijenata, onvergencija se postize minimax uvjetom koja ovisi o stupnju polinoma. Sto je stupanj polinoma manji to bolje.

Ako nekome, nesto nije jasno neka me slobodno pita (a ionako sam vec dosta reko).
Mala napomena za racunanje schurove forme.

Ideja zadatka je da se matricu A svede na gornje trokutastu matricu dobivenu unitarnim slicnostima. Program se zasniva na rekurzijama.
Najprije treba provjeriti da li je dimenzija matrice jedan, te ako jest tada se vracaju pripadni parametri (U=1,T=H, ind_2x2=0,br_it=0),te isto tako za dimenziju 2 (T=H,U=eye(max(size(H)))).


E ako matrica nije tih dimenzija, tada se ide nalazit nule po matrici ispod glavne pozitivne dijagonale, ali bi trebalo prije toga provijeriti jos uvjet
abs(H(i+1,i))<=tol*(abs(H(i,i)+abs(H(i+1,i+1))))
te ako je to zadovoljeno treba postavljati da je H(i+1,i)=0;

Najbolje bi bilo sve te pozicije gdje ste nasli nule postaviti u neki vektor.
Pa se sada rekurzivno poziva na svaki od tih blokova koje ste dobili razdvajanjem pocetne matrice. Ali treba biti malo oprezan, jer se sa 1. blokom i zadnjim treba posebno napraviti te rekurzivne pozive, dok se za unutarnje blokove moze sve staviti u for petlju, naprimjer.

Nemojte zaboraviti da dobro postelate unitarne matrice.
Da vam pomognem jos malo, jedan od nacina dobivanja unitarne matrice U je da kada rastavljate na blokove dobivate pripadnu unitarnu matricu Ui koju ste dobili iz funkcije schur_qr i tu matricu mnozite sa npr. matricom M s desna tj M=MUi. Sada ste dobili neku unitarnu matricu koju jos treba pomnoziti sa originalnom matricom U tj. U=UM.

I napokon, treca solucija je da ako niste dobili blokove, niti imate matricu koja je dimenzije 1 ili 2 tada morate raditi iteraciju QR metode.

Sto se tice konvergencije metode konjugiranih gradijenata, onvergencija se postize minimax uvjetom koja ovisi o stupnju polinoma. Sto je stupanj polinoma manji to bolje.

Ako nekome, nesto nije jasno neka me slobodno pita (a ionako sam vec dosta reko).


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji siročići (oni koji nemaju svoj podforum) -> Kolegiji vezani uz ekonomiju i financije Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan