Hallo,
ich soll das Bisektionsverfahren programmieren, um von einer Matrix A den m-ten Eigenwert zu berechnen.
Das hier habe ich schon dazu gemacht:
Die Funktion w berechnet die Anzahl der Vorzeichenwechsel und funktioniert auch so wie gedacht
n = size(A,1);
pkx = eye(1,n+1); % (1,p1(x),...,pn(x)) werden in pkx gespeichert, wegen p0(x)=1 n+1
pkx(2) = A(1,1)-x; % p1(x) wird in pkx an Stelle 2 gespeichert for i=1:1:n-1 % pk+1(x) = (A(k+1,k+1)-x)*pk(x)-|A(k+1,k)|^2pk-1(x)
pkx(i+2)= (A(i+1,i+1) - x)*pkx(i+1) - abs(A(i+1,i))^2 *pkx(i);
end
und hier wird das Bisektionsverfahren durchgeführt, wo ich aber direkt in der 3. Zeile anscheinend einen Fehler habe, den ich aber leider nicht sehe...
Code:
function[lambda] = Bisektionsverfahren(A, a, b, epsilon, m) while(abs(a-b) <= epsilon*(abs(a)+abs(b))
lambda = (a+b)/2;
if(w(lambda,A) >= m)
b = lambda;
else
a = lambda;
end end
wo ich aber direkt in der 3. Zeile anscheinend einen Fehler habe
woher weist du das er in der dritten zeile ist? erhällst du vielleicht eine fehlermeldung? wenn ja dann poste die bitte da sie schwer zu erraten ist
_________________
Oh nein, ich hab einfach nur die Klammer zu vergessen!
Vielen Dank!
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.