Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Bisektion - Ein Verfahren zur Nullstellenberechnung

  Alt 8. Mai 2006, 18:50
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;
Andreas
  Mit Zitat antworten Zitat