Matlab: Nullstellen mit Bisektionsmethode

Neue Frage »

Martin419 Auf diesen Beitrag antworten »
Matlab: Nullstellen mit Bisektionsmethode
Meine Frage:
Hallo!
Ich steige gerade in das Programm Matlab ein und stehe vor folgender Aufgabestellung:

Berechne die Nullstellen der Funktion F(x)=e^-x-cos(x) mit der Bisektionsmethode.

Das Programm soll eine negative, eine positive Grenze und die Genauigkeit der Iteration einlesen und anschließend die Nullstelle und die Zahl der Iterationsschritte ausgeben.

Soweit bin ich nun gekommen:

a=input('untere Grenze: ');
b=input('obere Grenze: ');
genau=input('Genauigkeit: ');
i=0; %Zähler

xi=(a+b)/2;

while (xi>genau)
i=i+1;
if (f(xi)*f(b)<0)
a=xi;
else
b=xi;
end
end

fprintf('Nullstelle bei %8.6f',xi)
fprintf('Nullstelle mit Iterationsschritten ermittelt',i)

Die Funktion habe ich in einer anderen .m file im selben Areitsverzeichnis wie folgt abgelegt:

function r=f(x)
r=exp(-x)-cos(x);

Nach dem Programmstart fragt das Programm die geforderten Parameter ab und gibt für die Nullstelle und Iterationsschritte die Werte "0.0" aus.

Kann mir jemand weiterhelfen, wo der Fehler in meinem Programm ist?




Meine Ideen:
zum ersten bin ich mir nicht sicher, ob ich die Funktion richtig verwendet habe und zum zweiten befürchte ich, dass ein logischer Fehler in der Schleife steckt.
Neue Frage »
Antworten »



Verwandte Themen

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