Gleichungen aus JTextField in Methode parsen

Henrik79

Grünschnabel
Hallo zusammen,

ich habe ein ganz nettes Problem.

Ich habe ein Programm geschrieben, welches in der Lage sein soll Nullstellen beliebiger Funktionen zu berechnen, vektorielle Mathematik darzustellen und auch Schnittpunkte zwischen Gleichungen zu berechnen und grafisch im 2D-Raum und 3D-Raum darzustellen.

So weit funktioniert alles ganz gut und auch Parameterformen von 2D und 3D Gleichungen lassen sich eingeben und verarbeiten.

Nun stehe ich allerdings vor einem Problem:

Ich habe ein JTextField zur Eingabe regulärer Gleichungen:

und eine Klasse MathFunktions in denen die Gleichungen für das Koordinatensystem exakt so behandelt werden.

BSP

Code:
public double fx(double x){

return Math.sin(x);
}
Das ganze ist nun so gehalten das die Funktion Math.sin in ein Koordinatensystem gezeichnet wird.

Doch wie mache ich es , dass ich in ein JTextField z.B. folgendes Schreibe:

f(x)= x^2-2x-1

und daraus wird in der Methode:

Code:
public double fx(double x){
return x*x-2*x-1;
}

Ich finde leider dazu keine vernünftige Antwort.

P.S.: Viele weisen auf externe Parser hin, aber das hilft mir nicht sonderlich weiter, da ich das ganze Prinzip gerne anhand einiger kleiner selbstgeschriebener Beispiele verstehen würde bzw. das ganze selbst schreiben, es geht mir also um eine relativ "exakte" Vorgehensweise.


Gruß


Henrik
 
Howdie.

Eine konkrete Antwort hab ich dir leider auch nicht... Aber da schon ein paar Tage niemand geantwortet hat, mal ein Vorschlag:

Ich würde mir selbst einen Parser schreiben, der eine Java-Klasse inklusive der eingegebenen Funktion erzeugt. Diese Klasse kann man zur Laufzeit kompilieren. Wie das genau funktioniert, weiß ich nicht, aber Thomas hat in einem anderen Thread was dazu verlinkt:
>>Klick mich<<

Gruß
miffi
 
Zuletzt bearbeitet:
Zurück