EvaluateInSymja: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 111: | Zeile 111: | ||
===Weitere Links=== | ===Weitere Links=== | ||
* [https://bitbucket.org/axelclk/symja_android_library/wiki/Home Symja Wiki] mit Web Interfaces und vollständiger Liste aller integrierten Funktionen/Konstanten |
Version vom 24. Mai 2017, 09:00 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. | Degree E Pi False True
|
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
- Symja Wiki mit Web Interfaces und vollständiger Liste aller integrierten Funktionen/Konstanten