EvaluateInSymja: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: „== '''DEPRECATED''' == Diese Funktion wird im Evaluator 2 nicht mehr unterstützt.“)
Zeile 1: Zeile 1:
== '''DEPRECATED''' ==
== '''DEPRECATED''' ==
Diese Funktion wird im Evaluator 2 nicht mehr unterstützt.
Diese Funktion wird im Evaluator 2 nicht mehr unterstützt.
===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 [[Variablen|Variable]] ''Test'' wird dann folgendermaßen beschrieben:
<syntaxhighlight lang="xml">
<option name="Test" type="Typ" cas="Evaluator" value="evaluateInSymja('argument')" />
</syntaxhighlight>
===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 <code>+</code>, Subtraktion <code>-</code>, Skalarmultiplikation <code>*</code>, Division <code>/</code>, Potenzieren <code>^</code>, Matrixmultiplikation <code>.</code>
* '''Strings''' werden mit Anführungszeichen angegeben.
* '''Ausdrücke''' können in Symja durch Semikolons getrennt werden. Bei der Eingabe <code>100!;32+8+2</code> werden zwar beide Ausdrücke ausgewertet, allerdings nur das zweite Ergebnis zurückgegeben: <code>42</code>. Es gibt die folgenden Typen von Ausdrücken:
{| class="wikitable"
!Typ
!Beschreibung
!Beispiel
|-
|Integer
|Ganzzahl
|<code>42</code>
|-
|Rational
|rationale Zahl
|<code>13/17</code>
|-
|Complex
|komplexe Zahl
|<code>2+I*(1/3)</code>
|-
|Real
|doppelte Genauigkeit
|<code>0.5</code>
|-
|Complex Real
|komplexe Zahl mit doppelter Genauigkeit
|<code>0.5-I*0.25</code>
|-
|Evaluation Precedence
|Auswertungspriorität mit <code>(...)</code>
|<code>(a+b)*c</code>
|-
|Lists
|Durch Kommata getrennt Liste von Elementen in geschweiften Klammern <code>{...}</code>
|<code>{a, b, c, d}</code>
|-
|Vectors
|Vektoren sind wie Listen, dürfen jedoch keine Unterlisten beinhalten <code>{...}</code>
|<code>{1, 2, 3, 4}</code>
|-
|Matrices
|Matrizen enthalten die einzelnen Reihen als Unterlisten.
|<code>{ {1, 2}, {3, 4} }</code>
|-
|Predefined Functions
|Vordefinierte Funktionen beginnen mit einem Großbuchstaben, die Argument werden in runden Klammern <code>( ... )</code> geschrieben.
|<code>Sin(0)</code><code>PrimeQ(13)</code>
|-
|Predefined Constants
|Vordefinierte Konstanten beginnen mit einem Großbuchstaben.
|<code>Degree</code><code>E</code><code>Pi</code><code>False</code><code>True</code>
|-
|Userdefined variables
|''Identifiers'' bzw. Bezeichner, denen man einen Wert zuweisen möchte, beginnen mit <code>$</code>
|<code>$a=42</code>
|-
|Userdefined rules
|''Identifiers'' bzw. Bezeichner, denen man einen Vorschrift zuweisen möchte, beginnen mit <code>$</code>
|<code>$f(x_,y_):={x,y}</code>
|-
|Pattern Symbols
|Patterns enden mit einem <code>_</code> und können eine Einschränkung haben.
|<code>$f(x_IntegerQ):={x}</code>
|-
|Strings
|Strings bzw. Zeichenketten werden in Anführungszeichen eingefasst
|<code>"Hello World"</code>
|-
|Slots
|Ein <code>#</code> gefolgt von einer optionalen Zahl.
|<code>#</code> oder <code>#2</code>
|-
|Pure Functions
|Pure Functions können mit dem &-Operator ausgedrückt werden
|<code>(#^3)&[x]</code> ergibt <code>x^3</code>
|-
|Parts of an expression
|Ein bestimmtes Element eines Ausdrucks erhält man durch <code>expression[ [index] ]</code>
|<code>{a, b, c, d}[ [2] ]</code> ergibt <code>b</code>
|}
===Beispiele===
Hier wird geprüft, ob die Eingabe der Divergenz des Vektorfelds entspricht.
<syntaxhighlight lang="xml">
<correctanswer>
<option result="evaluateInSymja('Equal(Divergence({x^2, y^3},{x, y}), [pos=1])')"/>
<message>Richtig!</message>
</correctanswer>
</syntaxhighlight>
===Weitere Links===
* [https://bitbucket.org/axelclk/symja_android_library/wiki/Home Symja Wiki] mit Web Interfaces und vollständiger Liste aller integrierten Funktionen/Konstanten
[[Kategorie:Evaluatorfunktion]]

Version vom 30. Oktober 2017, 13:10 Uhr

DEPRECATED

Diese Funktion wird im Evaluator 2 nicht mehr unterstützt.