o Thorsten Pawletta, University of Wismar, Dep. of Mechanical-, Process- and Environmental Eng., 

Interpreter zur symbolischen Formelmanipulation

Click on the Java Logo to start the application Autor: Jens- Uwe Dolinsky (weitere Projekte)
Seminargruppe: I93
E-mail u.dolinsky@iname.com 
This page in English


Inhalt:

  1. F?higkeiten des Systems
  2. Konventionen und Anwendung
  3. Die deutsche Dokumentation ist wahrscheinlich nicht mehr ganz aktuell, da ich nur noch die englische Seite warte.
  4. Einige Beispiele
  5. Download:
  6. Character- mode Executables f?r
     
    Download DLL  Win32 dynamic link library (DLL) (Letzte Version: )
    win32symbolic.zip (mit C/C++ Header- Datei und Interface- Dateien f?r Visual Basic und Delphi)(40 KB) 
     
     
  7. Java- Version (Applet) des Interpreters (100% Pure Java)
  8. Das Applet bekam eine JARS TOP 25% Wertung!
    JARS - The Java Applet Rating Service
    http://jars.developer.com/ 
    Rating 
    Download java class files  Download : Interpreter class files + Kernel- Programmierinterface incl. Anwenderdokumentation und Beispielquelltext (17 KB) 
     
Ziel dieses Belegs war die Entwicklung eines Manipulators f?r mathematische Ausdr?cke, der in der Lage ist, einen Eingabeterm syntaktisch und semantisch zu analysieren, und entsprechend algebraischer Regeln zu vereinfachen oder umzuformen. Seine F?higkeiten wurden an denen eines kleinen Computeralgebrasystems orientiert. Schwerpunkte lagen vor allem auf symbolischer Differentiation und Integration, aber auch numerische Aspekte durften nicht unber?cksichtigt bleiben.
Das Hauptaugenmerk bei der Enwicklung lag darauf, Flexibilit&aumlt, hohe Funktionalit?t bei einfachster Architektur und eine einfache Anpassbarkeit des Interpreters an vielseitige, unterschiedliche Berechnungsprobleme zu erreichen. Es kam weniger darauf an, die Ergebnisse der Berechnungen optimal zu repr?sentieren oder visuell aufzubereiten. F?r Anregungen, Kritik oder andere Meinungen ?ber sinnvolle Erweiterungen hat der Autor stets ein offenes Ohr.
Die Implementation erfolgte mit der Programmiersprache C++. Das Ergebnis ist ein plattformunabh?ngiger interaktiver Interpreter mit der F?higkeit, folgende Operationen durchzuf?hren:
symbolische Differentiation:
symbolische Integration
numerische Berechnung
Taylorentwicklung
Fourieranalyse


Konventionen:
  1. Bei der Verarbeitung von Variablennamen und Funktionsbezeichnern wird zwischen Gro?- und Kleinschreibung unterschieden. Die Bezeichner aller vordefinierten Funktionen und Konstanten liegen in Gro?schreibweise vor.
  2. Variablen- und Funktionsbezeichner bestehen aus mindestens einem Buchstaben gefolgt von mehreren Buchstaben oder Ziffern
  3. Die L?nge von Bezeichnern und Zahlen ist auf 80 Zeichen begrenzt. Bei ?berschreitung werden diese entprechend gek?rzt.
 
Konvention Bedeutung 
Operatoren  +,-,*,/,^  Grundoperationen 
Konstanten  PI  Kreiskonstante 
Grundfunktionen  SQRT(x)  Quadratwurzel 
EXP(x)  e- Funktion 
LN(x) nat?rlicher Logarithmus 
SIN(x),COS(x),TAN(x),COT(x) Winkelfunktionen 
ASIN(x),ACOS(x),ATAN(x) Arcusfunktionen 
SINH(x),COSH(x) hyperbolische Funktionen 
ABS(x) Betragsfunktion 
FAK(x) Fakult?t 
Substitution  SUBST(a,x,e)  Substitution des Teilausdrucks x im Term a durch Term e 
Differentiation  DIFF(f,x)  Ableitung des Terms f nach x 
DIFF(f,x,n)  n- fache Ableitung des Terms f nach x 
Integration  INT(f,x)  unbestimmte Integration des Terms f ?ber x 
INT(f,x,i1,i2)  bestimmte Integration des Terms f ?ber x im Intervall i1 bis i2 
Taylorentwicklung  TAYLOR(f,x,x0,n)  Entwicklung des Terms f in seine Taylorpolynom n-ter Ordnung nach x an der Stelle x0 
Fourieranalyse  FOURIER(f,x,t1,t2,n)  Entwicklung der Fourierreihe der Funktion f nach x f?r das Intervall t1 bis t2 in n-ter Ordnung 
Gleitkomma Berechnungen APPROX(x) Der konstante Ausdruck x wird als Gleitkommazahl erechnet 
 
Anwendung:
Der Interpreter meldet mit dem Eingabeprompt seine Bereitschaft. Eingegeben werden die Ausdr?cke in ?blicher mathematischer Infixschreibweise. Fehlerhafte Eingaben werden mit Fehlermeldungen zur?ckgewiesen. Kann ein Ausdruck nicht ausgewertet werden, wird er unver?ndert zur?ckgegeben.
Beispiele:

Differentiation:         DIFF(-1/5*x^2*TAN(LN(x)/2),x)
                         DIFF(SIN(t^x),t)
partielle Ableitungen:   DIFF(DIFF(1/(x^2 + y^2),x),y)
Integration:             INT(x^4*SIN(PI*x),x)
                         INT(3*x^4+SIN(x),x,0,4)
Numerik:                 (8+123)*67-6
                         APPROX(SIN(23)*COS(3*0.7))
Taylorentwicklung:       TAYLOR(SINH(x^2),x,0,5)
Fourieranalyse:          FOURIER(x,x,0,1,6)

Wismar, 16/03/1999
u.dolinsky@iname.com