![]() |
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 |
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 |
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^^ |
Re: Mathematische Funktionen ableiten
Zitat:
Zitat:
|
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 ;) |
Re: Mathematische Funktionen ableiten
Zitat:
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:
: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. |
Re: Mathematische Funktionen ableiten
Zitat:
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.. |
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. |
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. |
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 09:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz