Ableitungsapplet

Status
Nicht offen für weitere Antworten.
E

Eddy TT

Gast
Hallo zusammen,

für ein Projekt in der Schule habe ich mich dafür entschieden ein Applet zu programmieren das die Ableitung einer beliebigen Funktion ermittelt.

Ich habs auch soweit, dass ich auf klick die erste, zweite und auch die Stammfunktion ermitteln kann, jedoich nur beschränkt.

Ich wollte wissen, wie man einen kompletten Term wie "x³-2x+4" eingeben kann und auch ein kompletter Term in dem Beispiel "3x²-2" rauskommt, denn zur Zeit ist es so, das ich den Vorfaktor und den Exponenten einzeln eingeben muss.

Danke im Vorraus
 
G

Gast

Gast
die Funktion als String einlesen und dann Zerlegen

Hier helfen dann RegExp, um festzustellen ob es eine Zahl oder eine Variable ist,

Evtl. der StringTokenizer um einzelne Summanden/Subtrahenten zu ermitteln
Code:
x³-2x+4

zu

Code:
x³-2x
+4

zu

Code:
x³
-2x
+4
 

0x7F800000

Top Contributor
"vorfaktor" ?? "exponent" ???
Dürfte ich mal nachfragen, was für eine vorstellung von einer differenzierbaren funktion euch eigentlich beigebracht wird?

Das was du vorhast ist eine ziemlich aufwendige sache. Solange es nur funktionen mit einer veränderlichen sind, kann man einen funktionsfaehigen parser noch "naiv" hinhacken, aber mit regex kommt man da nicht aus, weil korrekte klammerung nicht durch reguläre sprachen, sondern erst durch dycksprachen beschreibbar ist ( => da muss zumindest mal ein stack her, da irregulär&kontextfrei)

Ableiten ist zwar ein "rein mechanischer" vorgang, bis man aber die ganzen produkt- und kettenregeln ordentlich ausformuliert hat, dauert's trotzdem eine weile. Man muss ja auch daran denken, divisionen durch multiplikationen mit negativen exponenten zu ersetzen, sich eine laaange liste fuer bekannte ableitungen fuer die ganzen trigonometrischen/hyperbolischen/...- funktionen anlegen usw usw usw.

Wenn man dann etwas rausbekommen hat, was richtig und mathematisch exakt ist, wird man wohl trotzdem ziemlich enttäuscht sein, denn: die entstehenden ausdruecke werden mordslang werden. Man muss die ja noch irgendwie vereinfachen/zusammenaddieren/ausklammern/auf gemeinsamen nenner bringen/ueberfluessige faktoren aus polynomen herausdividieren/regeln ähnlich wie e(ln(x))=id(x) und cosh²-sinh²=1 oder auch ln((1+x)/(1-x))/2=areatanh(x) anwenden usw usw usw. Das ist dann so richtig-richtig ätzend.

Tut man das alles nicht, so werden solche programme eher schaden als etwas nuetzen, weil die ergebnisse einfach nur riesig und total verwirrend werden.

Integrieren kannst du imho eh vergessen.

=> Ihr habt euch ein echtes hardcoreprojekt ausgedacht, solltest du das hinbekommen, dann verkaufe das zusätzlich als besondere lernleistung und facharbeit in einem, und schick's zu jugend-forscht oder was weiss ich... :p
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben