EvaluateInSymja: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Zeile 103: Zeile 103:
===Beispiele===
===Beispiele===
Hier wird geprüft, ob die Eingabe der Divergenz des Vektorfelds entspricht.
Hier wird geprüft, ob die Eingabe der Divergenz des Vektorfelds entspricht.
<syntaxhighlight lang="xml">  
<syntaxhighlight lang="xml">  
<correctanswer>
<correctanswer>
  <option result="evaluateInSymja('Equal(Divergence({x^2, y^3},{x, y}), [pos=1])')"/>
<option result="evaluateInSymja('Equal(Divergence({x^2, y^3},{x, y}), [pos=1])')"/>
  <message>Richtig!</message>
<message>Richtig!</message>
</correctanswer>
</correctanswer>
</syntaxhighlight>
</syntaxhighlight>


===Weitere Links===
===Weitere Links===

Version vom 23. Mai 2017, 10:09 Uhr

Beschreibung

Mit der Funktion EvaluateInSymja lassen sich Befehle explizit in dem Computer Algebra System Symja auswerten. Das Argument der Funktion ist ein String, welcher Symja übergeben wird. Es kann sich also auch um eine Kette von Befehlen handeln, die durch Semikolons getrennt sind.

Syntax

Eine Variable Test wird dann folgendermaßen beschrieben:

 <option name="Test" type="Typ" cas="Evaluator" value="evaluateInSymja('argument')" />

Parameter

  • Typ - Entspricht dabei dem Typen der Variable.
  • argument - Symja-Befehl

Symja-Syntax

  • Identifiers sind vom Benutzer gewählte oder in Symja integrierte Namen für Variablen, Funktionen oder Konstanten. Dabei wird nur bei Identifiers, die aus lediglich einem Buchstaben bestehen, zwischen Groß- und Kleinschreibung unterschieden, bei allen anderen nicht. Bei der Ausgabe beginnen alle integrierten Funktionen und Konstanten mit einem Großbuchstaben.
  • Operatoren werden zum Erzeugen mathematischer Ausdrücke verwendet. Symja kennt die gängigen mathematischen Operatoren: Addition +, Subtraktion -, Skalarmultiplikation *, Division /, Potenzieren ^, Matrixmultiplikation .
  • Strings werden mit Anführungszeichen angegeben.
  • Ausdrücke können in Symja durch Semikolons getrennt werden. Bei der Eingabe 100!;32+8+2 werden zwar beide Ausdrücke ausgewertet, allerdings nur das zweite Ergebnis zurückgegeben: 42. Es gibt die folgenden Typen von Ausdrücken:
Typ Beschreibung Beispiel
Integer Ganzzahl 42
Rational rationale Zahl 13/17
Complex komplexe Zahl 2+I*(1/3)
Real doppelte Genauigkeit 0.5
Complex Real komplexe Zahl mit doppelter Genauigkeit 0.5-I*0.25
Evaluation Precedence Auswertungspriorität mit (...) (a+b)*c
Lists Durch Kommata getrennt Liste von Elementen in geschweiften Klammern {...} {a, b, c, d}
Vectors Vektoren sind wie Listen, dürfen jedoch keine Unterlisten beinhalten {...} {1, 2, 3, 4}
Matrices Matrizen enthalten die einzelnen Reihen als Unterlisten. { {1, 2}, {3, 4} }
Predefined Functions Vordefinierte Funktionen beginnen mit einem Großbuchstaben, die Argument werden in runden Klammern ( ... ) geschrieben. Sin(0)PrimeQ(13)
Predefined Constants Vordefinierte Konstanten beginnen mit einem Großbuchstaben. DegreeEPiFalseTrue
Userdefined variables Identifiers bzw. Bezeichner, denen man einen Wert zuweisen möchte, beginnen mit $ $a=42
Userdefined rules Identifiers bzw. Bezeichner, denen man einen Vorschrift zuweisen möchte, beginnen mit $ $f(x_,y_):={x,y}
Pattern Symbols Patterns enden mit einem _ und können eine Einschränkung haben. $f(x_IntegerQ):={x}
Strings Strings bzw. Zeichenketten werden in Anführungszeichen eingefasst "Hello World"
Slots Ein # gefolgt von einer optionalen Zahl. # oder #2
Pure Functions Pure Functions können mit dem &-Operator ausgedrückt werden (#^3)&[x] ergibt x^3
Parts of an expression Ein bestimmtes Element eines Ausdrucks erhält man durch expression[ [index] ] {a, b, c, d}[ [2] ] ergibt b


Beispiele

Hier wird geprüft, ob die Eingabe der Divergenz des Vektorfelds entspricht.

 
<correctanswer>
 <option result="evaluateInSymja('Equal(Divergence({x^2, y^3},{x, y}), [pos=1])')"/>
 <message>Richtig!</message>
</correctanswer>

Weitere Links