Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Joe_the_Junkie 26. Sep 2006 20:53


Mathematische Funktionen ableiten
 
Hallo,

In der Schule haben wir einen Plotter programmiert, der Funktionen zeichnen kann.
Um die Funktionen zu Parsen, hatten wir eine Vorgabe.
Jedoch müssen wir noch programmieren, dass das Programm eine Funktion ableiten kann.

Allerdings hab ich im Kopf ein absolutes Blackout. :wall:

Wüsste jemand vielleicht eine Möglichkeit, wie man das umsetzen könnte?

Vielen Dank im Vorraus

Dax 26. Sep 2006 20:56

Re: Mathematische Funktionen ableiten
 
Nun, direkt ableiten wie man es auch in Mathe macht geht. Dazu brauchst du nur einen Baum deines Ausdrucks, auf den du dann die Ableitungsregeln anwendest...

Ansonsten könntest du noch numerisch differenzieren per Differenzquotient:
Code:
f(x + h) - f(x)
---------------
      h

Nicolai1234 26. Sep 2006 21:09

Re: Mathematische Funktionen ableiten
 
Letzteres ist eher schwer mit Delphi zu lösen -> 0 durch 0 etc...
Was sind das denn für Gleichungen?

OT: Hab heute meine erste LK-Mathe-Klausur überstanden^^

Dax 26. Sep 2006 21:12

Re: Mathematische Funktionen ableiten
 
Zitat:

Zitat von Nicolai1605
Letzteres ist eher schwer mit Delphi zu lösen -> 0 durch 0 etc...

Nun, wer sagt denn, h müsse dringend 0 werden? Epsilon reicht schon :zwinker:

Zitat:

Zitat von Nicolai1605
OT: Hab heute meine erste LK-Mathe-Klausur überstanden^^

Gratz ;)

Joe_the_Junkie 26. Sep 2006 21:14

Re: Mathematische Funktionen ableiten
 
Also eigentlich sollte es möglich sein, am besten alle Arten von Gleichungen zu lösen.

Sprich: Kettenregel, Ableitungen von sin(), cos() und Wurzelfuntionen.
Das Einzige, was wir nicht machen müssen sind Ableitungen von e-Funktionen.

@Nicolai: Ich schreibe am Freitag 5 Stunden Mathe über Vektoren ;)

Nicolai1234 26. Sep 2006 21:15

Re: Mathematische Funktionen ableiten
 
Zitat:

Zitat von Dax
Zitat:

Zitat von Nicolai1605
Letzteres ist eher schwer mit Delphi zu lösen -> 0 durch 0 etc...

Nun, wer sagt denn, h müsse dringend 0 werden? Epsilon reicht schon :zwinker:

Das kommt drauf an. Wenn die Ableitung nur gezeichnet werden soll, ist das sicherlich richtig. Ich gng nur davon aus, dass das PRogramm auch gleich den Term angeben soll.
Also man gibt f(x) = 2x² ein und erhält f'(x) = 4x <- Natürlich mit komplizierteren Gleichungen^^

Ich würde für einfache Gleichungen nach Regeln vorgehen, also so wie ich meine. Bei komplexeren Sachen würde ich nur zum Zeichnen den Weg vom Daxen nehmen.

EDIT: wo war der Kasten :?
Zitat:

Zitat von Joe_the_Junkie
@Nicolai: Ich schreibe am Freitag 5 Stunden Mathe über Vektoren ;)

Ich hatte 4 Std. über dein Thema :wink:

Zitat:

Zitat von Joe_the_Junkie
Also eigentlich sollte es möglich sein, am besten alle Arten von Gleichungen zu lösen.

Sprich: Kettenregel, Ableitungen von sin(), cos() und Wurzelfuntionen.
Das Einzige, was wir nicht machen müssen sind Ableitungen von e-Funktionen.

Na dann hast du ja alles was du brauchst :wink: Ich würde das in dieser Reihenfolge machen
:arrow: Trennung der einzelnen Summanden
:arrow: Konstandte Faktoren Suchen
:arrow: den Rest ableiten

Wie man den Rest ableitetet ist eine interessante Frage. Vielleicht helfen da die zahlreichen Matheparser in der DP weiter um einen Ansatz zu finden.

Dax 26. Sep 2006 21:18

Re: Mathematische Funktionen ableiten
 
Zitat:

Zitat von Nicolai1605
Ich würde für einfache Gleichungen nach Regeln vorgehen, also so wie ich meine. Bei komplexeren Sachen würde ich nur zum Zeichnen den Weg vom Daxen nehmen.

Wenn man den Term angeben soll, braucht man zwingend einen Baum des Ausdrucks, der abgelitten (;)) werden soll. Ansonsten ist das ne echte Sauerei.. :?

Mit einem solchen Baum sind selbst komplizierteste Gleichungen einfach abzuleiten. Man geht einfach nach den Regeln vor und ersetzt die trigonometrischen Funktionen entsprechend ihren Ableitungen :)

Edit: jaaa, das war der Absenden-Button, nicht die Vorschau..

Joe_the_Junkie 26. Sep 2006 21:18

Re: Mathematische Funktionen ableiten
 
Ja das mit dem nach Regeln vorgehen war mir schon klar.
Aber bei einer Kettenregel könnte das doch ein wenig schwer werden.

Aber es ist auch nicht möglich über Binärbaume zu gehen, oder?
Ich meine, so kann man ja auch Mathematische Funktionen Parsen.

Dax 26. Sep 2006 21:26

Re: Mathematische Funktionen ableiten
 
Binärbäume kannst du dabei nicht nehmen. Du musst schon den Baum nehmen, den dein Asdruck liefert.

Sagen wir mal, dein Programm soll den Ausdruck 2(4x+3)² ableiten. Normalerweise wird das so geparst, das das 2( X )² die höchste Ebene ist, wobei X ein Kindelement symbolisiert, in dem Fall 4x+3.

Das lässt sich natürlich weiter aufsplitten in 4x, +, 3. Idealerweise speicherst du zu jedem Koeffizienten die Potenz von x, die dazugehört.

Beim ableiten nimmst du dir alle her und leitest sie entsprechend der Potenzregel ab. Sprich, der Baum nach der Ableitung wäre einfach 4: die innere Ableitung.

Die äußere bekommst du analog, allerdings wird hier keine Zahl als Koeffizient und nicht x als Basis gebraucht, sondern das Kindelement als Basis und 2 als Koeffizient. Hier kannst du wieder den Regeln entsprechend ableiten.

Wie man das ganze dann der Regel entsprechend zusammenpappt dürfte ja auch nicht so schwer zu verstehen sein ;) Einfach Klammer drum (eigenes Kindelement), *-Element dran und die innere Ableitung (auch in Klammern) ran. Ist zwar nicht die zwanghaft saubere Methode, aber recht simpel zu realisieren.

Joe_the_Junkie 27. Sep 2006 12:07

Re: Mathematische Funktionen ableiten
 
So ich hab heute erfahren, dass wir die Ableitung gar nicht angeben müssen, sondern es reicht, wenn wir den Graphen der abgeleiteten Funktion einzeichnen.

Ich hab das aber über die Formel

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

gemacht. 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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 Uhr.
Seite 1 von 2  1 2      

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