# Mathematische Funktion: Ableiten



## Mujahiddin (20. Jan 2010)

Hallo, ich wollte eine 'Rechner' programmieren, der einen Term f(x) ableitet..
Ich bin auf folgendes Problem gestoßen:

Ich habe mir gedacht, dass das Programm zuerst alle Summanden aufteilen soll, also .split("+"); .split("-");
und dass er dann die Exponenten 'checkt', also in jedem Summanden den Index des 'x' holt, und guckt, ob nach dem x ein '^' steht, wenn ja, guckt er, ob nach dem ^ ein "(" steht - und dann kopiert er sozusagen alles 'in der klammer' und bla.
aber wenn jetzt in dieser klammer ein + wäre, dann würd er das ja gar nicht mehr finden...
ich glaube, wie ich die ganze sache angehe, ist vollkommen verkehrt, oder?
mir fällt aber momentan kein besserer weg ein, zumal ich noch gar nicht viele methoden in java kenne...

kann mir jemand nen lösungsvorschlag geben, der besser ist als meiner? ^^
Ich hoffe auf gute Hilfe.
Liebe Grüße


P.S.: Ableitung sieht so aus:
f(x) = x^(n)
f-a-(x) = nx^(n-1)

also z.b.: f(x) = x^(3)
f-a-(x) = 3x^(2)

f(x) = 3x^(5)
f-a-(x) = 3*5*x^(5-1)
f-a-(x) = 15x^(4)


----------



## Illuvatar (20. Jan 2010)

Schau am besten mal hier: http://www.java-forum.org/allgemeines/12306-parser-fuer-mathematische-formeln.html
Falls du nicht nur Polynome ableiten können willst, kann das ganze natürlich noch um einiges komplizierter werden, als es eh schon ist.


----------



## MyAnno1404 (4. Apr 2015)

zuerst solltest du eine Funktion schreiben die alle klammern eliminiert usw. Du stehst vor der aufgabe ein CAS zu Coden - der aufwand explodiert... wenn du nur das kleine Problem da lösen willst würde ich zuerst nach ( suchen dann nach der gleichwertigen ) und einen neuen string erstellen ohne (....) aber mit einer neuen variable als Repräsentant


----------

