26. Februar 201115 j Hallo, ich habe mir einen Funktionsparser gebaut, der eine Funktion von Infix in Postfix konvertiert und dann das Ergebnis errechnet. Nun will ich auch die Ableitung errechnen, aber ich finde keinen effizienten Weg. Ich würde die Funktion als String erstmal in Einzelteile zerlegen und dann einzeln ableiten. Aber gibt es keine effizientere Möglichkeit ?
26. Februar 201115 j Du willst hier symbolisch die Differentation durchführen. Ich gehe davon aus, dass Dir die Regeln bekannt sind. Im Grunde kann man das selbst implementieren, ich würde hier aber zu fertigen Bibliotheken greifen GiNaC is Not a CAS denn diese sind entsprechend getestet. Man kann das zwar auch selbst implementieren, wobei ich dann hier ganz dringend von einer Stringverarbeitung abraten würde und das ganze über eine entsprechende Grammatik definiere, mit Lexer und Parser verarbeiten würde und dann aus dem entsprechenden Syntaxbaum die Ableitungen bilden würde
26. Februar 201115 j Danke für die Antwort. Ich hab schon geahnt das es keinen einfachen Weg gibt es selbst zu implementieren. Da werd ich wohl auf eine Bibliothek zurückgreifen. Danke.
26. Februar 201115 j Naja das Bilden von Ableitung geschieht nach deterministischen Regeln, somit sollte das kein Problem sein. Deine Grammatik für arithmetische Ausdrücke zu schreiben ist auch nicht viel Aufwand. Parser & Lexer kann man mit entsprechenden Tools aus der Grammatik direkt erzeugen (dafür gibt es Toolunterstützung). Sofern man dann einen passenden Syntaxbaum hat, kann man eben diesen passend zu den Ableitungsregeln verarbeiten. Im Gegensatz zur Integration ist das noch recht leicht
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.