Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 17:12

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



C++ Ableitung über Taylorreihe?

Discussion on C++ Ableitung über Taylorreihe? within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
Belur's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
C++ Ableitung über Taylorreihe?

Hey,

habe in der Uni im Moment ein Projekt am laufen.
Es soll mathematische Funktionen ausrechnen können. Das ganze funktioniert bislang mit Java und Antlr4.

Also Antlr4 generiert mir Bäume die in etwa aussehen:

Der generierte TreeWalker iteriert dann darüber und ruft die entsprechenden Funktionen im Listener auf. So wird das ganze dann berechnet.
Damit lassen sich dann Ausdrücke wie: f(a,b)=2*a-5*b^2; f(3,4); oder einfach nur Rechnungen wie 5-(2*3) ausrechnen.

Nun soll hinzukommen, dass eine C++ Routine die Ableitung an einer bestimmten Stelle ausrechnet. Also f(x)=x^2; f'(2); oder Ähnliches.
Das ganze soll über die JNI Schnittstelle implementiert werden.

Erste Aufgabe soll es sein, erstmal eine solche Ableitung an einer Stelle x0 zu berechnen in einer C++ Funktion. Da wir uns C++ jetzt selbst aneignen müssen bin ich ziemlich ratlos wie man in C++ "rechnet".

In Java kann ich einen String ja nur ausrechnen indem ich über Bäume iteriere und dann Funktionen im Listener aufrufe, die dann Ergebnise auf einen Stack pushen und verrechnen.
In C++ hab ich jetzt natürlich weder einen TreeWalker, noch Antlr4, noch einen Listener etc.
Gibt es eine Datenstruktur oder irgendwelche andere Verfahren um eine Funktion zu berechnen oder wie geht man das am besten an?

Denke wir sollen keine fertig implementieren Schnittstellen nehmen sondern sowas "händisch" machen.

Hoffe jemand hat da einen Ansatz

Grüße
Belur is offline  
Old 11/30/2014, 21:05   #2
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
In C++ gehst du genauso vor wie in anderen Sprachen - parsen und (möglicherweise implizit) den Baum durchlaufen. Für den ersten Teil kannst du z. B. ANTLR 3, Boost.Spirit oder eine der vielen Yacc-Varianten nutzen. Oder du kannst den Parser selbst schreiben, wovon ich im Folgenden ausgehen werde. Es bietet sich in der Regel an, davor einen Lexer zu verwenden.
Sofern du explizit einen Syntaxbaum konstruierst (in diesem Fall eine gute Idee, so musst du den Ausdruck nicht jedes Mal neu parsen, wie es AutoIt tut), kannst du das Besucher-Entwurfsmuster für die einzelnen Syntaxknoten verwenden, wobei du bei jedem Besuch das Ergebnis des aktuellen Teilausdruckes zurückgibst oder alternativ deine Stapel-Variante verwendest.

Davon abgesehen halte ich es nicht für die beste Idee, mit einem Parser in C++ anzufangen, insbesondere, wenn man von einer Sprache wie Java kommt.
Tasiro is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Brauche ein paar Informationen von Profis über The Witcher 2 EE(besonders über Mods)
06/19/2014 - General Gaming Discussion - 1 Replies
Hallo The Witcher 2 Experten(oder auch nicht), möglicherweise mag The Witcher 2 nicht das neueste Spiel für euch sein, aber ich hab gerade erst angefangen es zu spielen und muss sagen: "Es ist der Hammer!". Ich habe die gog.com-Version und den neusten Patch 3.4. Nun habe ich ein paar Sachen zu bemängeln: Tragegewicht, dies habe ich mit einem "change max weight of geralt"-mod behoben, nun habe ich 5000 Tragekapazität. Soweit so gut, aber ich frage mich ob dieser Mod das Spiel nicht...
Java blueJ Ableitung einer Funktion
07/03/2013 - General Coding - 3 Replies
Guten Abend, meine AUfgabe in Informatik ist es mit einem Array,auf einer Oberfläche mit einer Ableitung einer Funktion + einen x wert den zugehörigen y Wert zu berechnen. Dabei ist es halt wichtig,dass ständig die coeffizienten im array gespeichert werden und dann mit einem x Wert multipliziert,sodass der zugehörige y wert herauskommt. Wie setze ich dies um?
Internet funkt. nur über Wlan aber nicht über Lan [HILFE/Belohnung]
01/20/2013 - Technical Support - 8 Replies
Problem gelöst
Produkt und Kettenregel - Ableitung bilden HILFE
01/04/2012 - Off Topic - 1 Replies
Hallo ihr Mathe-Asse Meine Frage: Also ich habe die Funktion f(x)=x*(1-x)^2 und ich bin mir nicht im klaren wie ich die Ableitung bilden soll ? Meine Ideen: Okay mein Ansatz war der Sorte , dass ich gesag habe : f(x)=x*(1-x)^2 U(x)=x



All times are GMT +1. The time now is 17:14.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.