Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mathematische Funktionen ableiten (https://www.delphipraxis.net/77926-mathematische-funktionen-ableiten.html)

Alexander 27. Sep 2006 13:05

Re: Mathematische Funktionen ableiten
 
Du kannst da doch genau so vorgehen.
Einfach statt den Funktionswerten f(x) etc. f'(x) einsetzen. Und f' hast du ja schon.

Joe_the_Junkie 27. Sep 2006 13:15

Re: Mathematische Funktionen ableiten
 
Nein, ich würde nicht sagen, dass ich damit f'(x) habe.

Ich hab damit ja nur die Punkte eingezeichnet in einer For-Schleife. Mehr nicht.
Das heißt, ich geh von meinem Minimum in Graphen auf, bis zum Maximum an der X1-Achse entlang.

Dann rechne ich den nummerischen Wert aus und zeichne ihn in meine X2-Achse ein.
Aber ich hab nicht die f'(x) damit...

Cöster 27. Sep 2006 15:05

Re: Mathematische Funktionen ableiten
 
Nehmen wir an, die x-Achse deines Koordinatensystems geht von -5 bis 5. Dann legst du dir drei arrays an:

Delphi-Quellcode:
F: array[-52..52] of Extended;
FStrich: array[-51..51] of Extended;
FStrichStrich: array[-50..50] of Extended;
In F speicherst du dann alle Y-Werte. Für FStrich baust du dir dann eine for-Schleife à la:

Delphi-Quellcode:
for x := -51 to 51 do
  FStrich[x] := (F[x+1] - F[x-1])*5// durch 0,2
Für FStrichStrich entsprechend anders. F[34] wär dann f(3,4). Die Indizes bei arrays AFAIK dürfen doch keine Floats sein, oder?

Dax 27. Sep 2006 16:08

Re: Mathematische Funktionen ableiten
 
Zitat:

Zitat von Joe_the_Junkie
Jetzt bräuchte ich aber noch die zweite Ableitung und soweit ich weiß, gibbet da keine Formel für.
Wüsste vielleicht einer von euch eine Lösung?

Delphi-Quellcode:
function f(x: Extended): Extended;
{ ... deine Funktion eben ... }

function fDerivation(x: Extended; grade: Integer);
begin
  if grade = 0 then
    Result := f(x)
  else
    Result := (fDerivation(x + Epsilon, grade - 1) - fDerivation(x, grade - 1)) / Epsilon;
end;

Joe_the_Junkie 27. Sep 2006 16:14

Re: Mathematische Funktionen ableiten
 
Vielen Dank für eure Hilfe, aber ich hab selbst ne Lösung gefunden.

War jetzt solange mit dran, dass ich nicht mehr hier reingeschaut hatte :oops:

ALso ich mach das so:

Ich bilde die Ableitung von x1 und von x2;
Dann hab ich ja die beiden Koordinaten zu diesen Punkten.
Mit den beiden mach ich jetzt nochmal eine Differenzialrechnung uns erhalte damit den Wert für die zweite Ableitung.
Funktioniert auch wunderbar.

Aber trotzdem nochmal vielen Dank von euch allen :thumb:

@Dax: Ich arbeite lieber mit

f(x) - f(x0)
------------
x - x0

Fand ich irgendwie immer besser als das mit h :mrgreen:

rantanplan99 27. Sep 2006 16:20

Re: Mathematische Funktionen ableiten
 
Man kann die Ableitung(en) (den Wert) auch über automatische Differentiation berechnen. Google mal danach. Dazu muss man allerdings Operatoren überladen, aber das geht ja ab BSD 2006 / Turbo Delphi

rantanplan

Joe_the_Junkie 28. Sep 2006 10:57

Re: Mathematische Funktionen ableiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hat sich alles schon erledigt.
Hab das Programm jetzt fertig.

Habs mal hochgeladen, falls das einer mal sehen möchte ^^

Codewalker 28. Sep 2006 11:12

Re: Mathematische Funktionen ableiten
 
Wirst du das auch als Source veröffentlichen? (Wäre vor allem für Physikprogramme unglaublich praktisch).

Joe_the_Junkie 3. Okt 2006 16:17

Re: Mathematische Funktionen ableiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
So ich hab jetzt mal den Quelltext meines Programms hochgeladen, für die, die es gerne haben möchten.

Der Quelltext ist nicht gerade super kommentiert, aber man dürfte damit klarkommen. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz