Potenzmethode Matlab

Neue Frage »

steviehawk Auf diesen Beitrag antworten »
Potenzmethode Matlab
Meine Frage:
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
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?
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
Airblader Auf diesen Beitrag antworten »

Verwende doch bitte in Zukunft die code-Tags, damit die Beiträge auch halbswegs leserlich sind.

air
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »