2016-04-04 6 views
0

Ich versuche, ein Programm für die Auswertung von Derivaten an einem Punkt mit komplexen Schritt Differenzierung complex step differentiation zu schreiben.Komplexe Zahlen in analysierten Gleichungen auswerten

Dazu wird eine analytische Funktion F (x) genommen und an einem imaginären Punkt F (x + ih) ausgewertet, wobei h ein reeller Parameter ist. F '(x) ist dann gegeben durch imag (F (x + ih))/h.

Ich habe diese Methode für die Bewertung von Derivaten mit this Swift-Code für die komplexen Zahlen getestet und es scheint zu einer Lösung viel schneller konvergieren als mit Finite-Differenzen-Methoden ist auch stabiler.

Ich habe jedoch eine harte Zeit herauszufinden, wie dies für Benutzer eingegebene Funktionen zu implementieren, die geparst werden können.

Ich habe versucht, mit DDMathParser zu untersuchen, aber es unterstützt keine komplexen Zahlen. Ich habe mich gefragt, ob dies mit NSExpression überhaupt möglich wäre, aber ich verstehe nicht, wie es funktioniert, und ich weiß nicht, ob es eine Möglichkeit geben würde, komplexe Zahlen damit auszuwerten.

Wenn Sie eine Idee haben, wie Sie damit umgehen, würde ich es schätzen!

Antwort

0

DDMathParser Autor hier.

Wie Sie see on Github können, habe ich überlegt, Unterstützung für komplexe Zahlen hinzuzufügen. Der Parser könnte leicht dazu gebracht werden, mit ihnen umzugehen, denke ich. Das Problem ist, dass die Evaluierungsmaschine komplett überarbeitet werden müsste. Im Moment werden alle Auswertungen unter Verwendung von Doubles durchgeführt, und es wäre eine nicht-triviale Änderung, sie alle zu komplexen Zahlen zu machen.

NSExpression hat keine Unterstützung für komplexe Zahlen.

Ich denke, an diesem Punkt müssen Sie wahrscheinlich woanders für Ihre Analyse und Auswertung suchen.