Matlab: Nullstellen mit Bisektionsmethode |
02.11.2010, 14:55 | Martin419 | Auf diesen Beitrag antworten » |
Matlab: Nullstellen mit Bisektionsmethode 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. |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
Die Neuesten » |
|