Zitat von
moertymoo:
das Prinzip hab ich ja verstanden nur das verfahren in delphi zu bekommen ist mein problem..
Das ist doch nicht so schwer.
Delphi-Quellcode:
function Bisektion(var a, b: double):integer;
var
F_a : double;
// weitere Variablen
begin
result := 0;
F_a := Funcwert(a);
F_b := Funcwert(b);
if Sign(a)=sign(b) then // Vorzeichen vergleichen
begin
result := -10;
exit; // gleiches Vorzeichen
end;
while(a < b) do
begin
Result := Result + 1; // Anzahl der Durchläufe
p := (a+b) / 2; //
F_p := Funcwert(p);
if Abs(F_p) < 0.000001 then
begin
// Nullstelle gefunden
a := p; // in a und in b liegt dann der X-Wert der Nullstelle
b := p;
exit;
end;
// so jetzt hab ich dir fast alles hingeschrieben
// der Rest ist deine Hausaufgabe
// du hast 3 Y-Werte (F_a, F_b, F_p)
// jetzt muss du nur noch kucken wie die Vorzeichen sind
// und dann entweder a oder b verändern
// nicht vergessen, F_a oder F_b auch zu ändern
end;
end;