# Mathematische Gleichungen lösen



## Lina (3. Jun 2011)

Gibt es eine Java-Mathebibliothek, die fähig ist mathematische Gleichungen zu lösen, also auch mit Umstellung der Gleichung, damit der Anwender es nachvollziehen kann. 

Als Beispiel: 
324*x^4 - 27*x^5 = 0
<=> 27x^4* (12-x) = 0
        x=0;     x=12;


----------



## awda23ws23 (5. Jun 2011)

ja


----------



## spinnerboy (5. Jun 2011)

Es gibt leider keine solche Methode, aber es wäre auch verdammt schwer eine zu erstellen.
Als erstes brauchst du dein Input-Textfeld, wir nehmen mal zum Beispiel

```
private JTextField eingabe = new JTextField();
```
und Outputs für alle Zwischenschritte, in dem Beispiel einfach mal nen Einzeiler:

```
private JTextField ausgabe = new JTextField();
```
und unsere Beispielaufgabe ist "3+x=7".
Schon in einem so einfachen Beispiel wäre es schwer dem Programm zu erklären, was sein Ziel ist.
Also muss man erklären "Setze alle Variablen auf eine Seite und den Rest auf die andere".
So, wie soll man das anstellen?

Wie du siehst, sogar nur eine Operation "-4" herauszufordern ist nicht einfach.
Vielleicht hilft es dir aber irgendein JAVA-basiertes Open Source CAS (Computer-Algebra-System) zu decompilieren und zu sehen, wie sie es gemacht haben. Problematisch ist nur, dass so etwas in der Regel nicht mit JAVA programmiert wird.
Trotzdem viel Erfolg bei deinem Projekt, ich weiß auch keine Lösung 
LG, spinner!


----------



## Nicer (5. Jun 2011)

awda23ws23 hat gesagt.:


> ja



Sehr hilfreich ....

Also mir wäre nichts dergleichen bekannt. Die Sache würde ziemlich Komplex werden , da ja jede Erdenkliche gleichung gelöst werden soll. D.h. Polynome , Analysis , Vektorrechnung und much more...

Ergo müsstest du erst einmal eine Methode schreiben dier den Eingetippten Funktionstherm zerlegt und in eingene Variablen speichert. Dann müssen die Ableitungen und die Stammfunktion erstellt werden .... [ ... much more ] ... .

Du siehst also dass die Sache ziemlich Kompliziert ist.


----------



## Marco13 (5. Jun 2011)

Ja, ohne Einschränkungen wird das schwierig. In letzter Konsequenz nennt sich sowas dann "CAS" (Computer Algebra System), also sowas wie Mathematica & Co, kostet ein Schweinegeld und ist sicher nicht als kleine Java-JAR verfügbar. Mit java wäre es vermutlich (!!!) noch am einfachsten, das an Wolfram|Alpha: Computational Knowledge Engine zu schicken und sich das Ergebnis abzuholen


----------



## muckelzwerg (6. Jun 2011)

Welche Arten von Gleichungen sollen denn überhaupt verarbeitet werden? Bei Grad 5 kann es doch bereits schiefgehen mit einer geschlossenen Lösung. Und dann musst Du eher ein iteratives Verfahren darstellen. 
Für alle Varianten, die geschlossen lösbar sind, gibt es auch die entsprechenden Formeln in der Literatur. Sollte eigentlich nicht so schwer sein, die paar Fälle zu proggen.
Vielleicht taugt das hier was
Java Algebra System (JAS)


----------

