Einzelnen Beitrag anzeigen

tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#6

Re: numerische Differentiation

  Alt 27. Jan 2006, 09:58
Ich schmeiß hier jetzt mal vollkommen ungetestet wilde Behauptungen in den Raum:
Zitat:
Delphi-Quellcode:
function foo_(x: Double; degree: integer): Double;
var
  diff: array of Double; // für die Differenzenquotienten
  n, m: integer;
begin
SetLength(diff, degree + 1);

for n := 0 to degree do
  diff[n] := foo(x + (-degree/2 + n) * PRECISION);

for n := 0 to degree do
  for m := 0 to n - 1 do
    diff[m] := (diff[m+1] - diff[m]) / PRECISION;

Result := diff[0];
end;
Erstens: In der zweiten for-Schleife kannst du dir eigentlich den Durchlauf für n=0 sparen. Da liegt aber sicher nicht der Fehler.
Aber: In der inneren Schleife (for m := ...) ist IMHO die Obergrenze falsch berechnet. Es müsste heißen
for m := 0 to degree - (n-1) do...
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat