Potenzmethode Matlab |
05.05.2012, 09:59 | steviehawk | Auf diesen Beitrag antworten » |
Potenzmethode Matlab Hallo Leute, ich sollte für eine Aufgabe die von Mises Iteration als Funktion in Matlab schreiben, habe da aber noch meine Probleme: Ich habe bis jetzt: function lambda = vonMises(B,n) v_0 = linspace(1,1,n)'; %Startvektor mit lauter einsen (ist so vorgegeben) for k=1:n w_k = v(k-1)/(sqrt((v(k-1))'*(v(k-1)))); % Bei der Folge w_n wird der v immer durch seine norm geteilt v_k = B*w_k; %Matrix - Vektorprodukt M_k = v_k'*w_k; %Skalarprodukt lambda = M_2k; &sollte mir den größten eigenwert anzeigen end Meine Ideen: Leider klappt da noch garnichts.. Der Error lautet: Error using vonMises (line 3) Not enough input arguments. Kann mir jemand helfen? Danke EDIT: Okay, der Error kam zu Stande, weil ich vergessen habe, beim aufrufen der Funtkion das n mit anzugeben. neuer Error: Undefined function 'v' for input arguments of type 'double'. Error in vonMises (line 8) w_k = v(k-1)/(sqrt((v(k-1))'*(v(k-1)))); EDIT: So noch mal ungeschrieben, jetzt gehts: function lambda = vonMises(B,n) v = ones(n,1); %Startvektor for k=1:100 %100 Iterationen wn = v/(sqrt(v'*v));%Normierung v = B*wn; %Iterierter Vektor lambda = wn'*v; end |
||
05.05.2012, 10:42 | steviehawk | Auf diesen Beitrag antworten » |
RE: Potenzmethode Matlab Bekomme ich es irgendwie hin, dass Matlab die Dimension n der Matrix B automatisch erkennt, so dass ich das n bei vonMises(B,n) nicht extra angeben muss, so dass dann der Startvektor v = ones(n,1) autormatisch angepasst wird? |
||
05.05.2012, 11:08 | steviehawk | Auf diesen Beitrag antworten » |
RE: Potenzmethode Matlab habs schon, ich nimm einfach überall wo ich n brauche length(B), ist ja eh ne nxn Matrix |
||
05.05.2012, 13:47 | Airblader | Auf diesen Beitrag antworten » |
Verwende doch bitte in Zukunft die code-Tags, damit die Beiträge auch halbswegs leserlich sind. air |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |