EvaluateInSage: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 4: | Zeile 4: | ||
===Syntax=== | ===Syntax=== | ||
Eine [[Variablen|Variable]] ''Test'' wird dann folgendermaßen beschrieben: | Eine [[Variablen|Variable]] ''Test'' wird dann folgendermaßen beschrieben: | ||
<syntaxhighlight lang="xml"> | |||
<option name="Test" type="Typ" cas="Evaluator" value="evaluateInSage('argument')" /> | <option name="Test" type="Typ" cas="Evaluator" value="evaluateInSage('argument')" /> | ||
</syntaxhighlight> | |||
===Parameter=== | ===Parameter=== | ||
Zeile 90: | Zeile 92: | ||
===Beispiele=== | ===Beispiele=== | ||
Eine 3x3-Matrix als [[Variablen|Variable]] mit Namen A erstellt man durch den folgenden Befehl: | Eine 3x3-Matrix als [[Variablen|Variable]] mit Namen A erstellt man durch den folgenden Befehl: | ||
<syntaxhighlight lang="xml"> | |||
<option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[1,2,3],[4,5,6],[7,8,9]])')" /> | <option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[1,2,3],[4,5,6],[7,8,9]])')" /> | ||
</syntaxhighlight> | |||
In dem folgenden Beispiel wird eine Matrixvariable "A" erzeugt und anschließend der Rang von "A" in der Variable "rang" gespeichert. | In dem folgenden Beispiel wird eine Matrixvariable "A" erzeugt und anschließend der Rang von "A" in der Variable "rang" gespeichert. | ||
<syntaxhighlight lang="xml"> | |||
<variables> | <variables> | ||
<option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[0,1,0],[0,0,1],[-2,1,2]])')" /> | <option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[0,1,0],[0,0,1],[-2,1,2]])')" /> | ||
<option name="rang" type="single" cas="Evaluator" value="evaluateInSage('[var=A].rank()')" /> | <option name="rang" type="single" cas="Evaluator" value="evaluateInSage('[var=A].rank()')" /> | ||
</variables> | </variables> | ||
</syntaxhighlight> | |||
Erzeugt eine Variable ''A'' vom Typ ''matrix'' und bezieht sich auf eine '''3x3-Matrix''' mit Einträgen in Q. Die genauen Einträge der Matrix stehen in eckigen Klammern. Außerdem wird eine Variable ''rang'' vom Typ ''single'' erzeugt, welche den Rang der Variable ''A'' berechnet. In diesen Beispielen wäre A=(Matrix) und rang=3. | Erzeugt eine Variable ''A'' vom Typ ''matrix'' und bezieht sich auf eine '''3x3-Matrix''' mit Einträgen in Q. Die genauen Einträge der Matrix stehen in eckigen Klammern. Außerdem wird eine Variable ''rang'' vom Typ ''single'' erzeugt, welche den Rang der Variable ''A'' berechnet. In diesen Beispielen wäre A=(Matrix) und rang=3. | ||
<syntaxhighlight lang="xml"> | |||
<variales> | <variales> | ||
<option name="v1" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,1,[1,0,0])')" /> | <option name="v1" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,1,[1,0,0])')" /> | ||
Zeile 111: | Zeile 118: | ||
<!-- falls basisTester=1, so bilden die Vektoren eine basis des R3--> | <!-- falls basisTester=1, so bilden die Vektoren eine basis des R3--> | ||
</variables> | </variables> | ||
</syntaxhighlight> | |||
Prüft ob die Vektoren <math>v_1, v_2</math> und <math>v_3</math> eine Basis des R³ bilden. | Prüft ob die Vektoren <math>v_1, v_2</math> und <math>v_3</math> eine Basis des R³ bilden. | ||
Version vom 27. April 2017, 13:03 Uhr
Beschreibung
Mit der Funktion EvaluateInSage lassen sich Befehle in dem Computer Algebra System Sage auswerten. Das Argument der Funktion ist ein String, welcher Sage übergeben wird. Es kann sich also auch um eine Kette von Befehlen handeln, die durch Semikolons getrennt sind. Mit dieser Funktion lassen sich z.B. standardmäßige Konstruktionen der Linearen Algebra auswerten.
Syntax
Eine Variable Test wird dann folgendermaßen beschrieben:
<option name="Test" type="Typ" cas="Evaluator" value="evaluateInSage('argument')" />
Parameter
- Typ - Entspricht dem Typen der Variable.
- argument - Sage Befehl
Befehlsreferenz für Sage
In der folgenden Tabelle stehen einige Beispielbefehle für Sage zusammen mit ihrem Rückgabetyp und ihrem Rückgabewert. Einige Befehle beziehen sich auf eine bereits erstellte Matrixvariable "A" (s. Beispiele) und machen mit Hilfe dieser Variable weitere Berechnungen wie z.B. die Berechnung des Rangs der Matrix.
argument | Typ | Beschreibung |
matrix(QQ,n,1,[1,2,3]) | matrix | Vektor mit n Einträgen in Q. |
matrix(QQ,n,m,[[1,2,3],[4,5,6],[7,8,9]]) | matrix | nxm-Matrix mit Einträgen in Q. Einträge werden Zeilenweise angegeben. |
identity_matrix(QQ,n) | matrix | nxn-Einheitsmatrix |
[var=A].rows() | single | Gibt die Anzahl der Zeilen einer Matrix zurück. |
[var=A].cols() | single | Gibt die Anzahl der Spalten einer Matrix zurück. |
[var=A].det() | single | Gibt die Determinante der Matrix an. |
[var=A].rank() | single | Gibt den Rang der Matrix an. |
[var=A].is_diagonalizable() | single | Gibt an, ob die Matrix diagonalisierbar ist (true bzw. 1 (JACK)) oder nicht (false bzw. 0 (JACK)). Aktuell gibt es noch Fehler, falls die Matrix nicht diagonalisierbar ist. |
[var=A].is_singular() | single | Gibt an, ob die Matrix singulär ist (true bzw. 1 (JACK)) oder nicht (false bzw. 0 (JACK)). |
[var=A].eigenvalues()[x] | matrix/single | Gibt den x-ten Eigenwert einer Matrix an, x={0,1,2...}. |
[var=A].eigenvectors_right()[x][y][z] | matrix/single | Besteht aus einer Menge in der Eigenwerte, Eigenvektoren und die Vielfachheit des Eigenwertes vermerkt sind. Siehe dazu Seite 95 in der Dokumentation. |
[var=A].with_swapped_rows(i,j) | matrix | Vertauscht die Zeilen (i+1) und (j+1) der Matrix |
[var=A].with_added_multiple_of_row(i,j,k) | matrix | Addiert das k-fache der (j+1)-ten Zeile auf die (i+1)-te Zeile. |
[var=A].augment([var=B]) | matrix | Fügt zwei Matrizen A und B zusammen. Anzahl der Zeilen muss übereinstimmen. (Zum Beispiel zum Überprüfen, ob die Vektoren eine Basis bilden.) |
[var=A].rref() oder [var=A].echelon_form() | matrix | Gibt die Matrix in Zeilenstufenform an (Reduced Row-Echelon Form) |
[var=A].solve_right([var=b]) | matrix | Löst ein Gleichungssystem der Form Ax=b |
[var=A].solve_left([var=v]) | matrix | Löst ein Gleichungssystem der Form xA=v |
Beispiele
Eine 3x3-Matrix als Variable mit Namen A erstellt man durch den folgenden Befehl:
<option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[1,2,3],[4,5,6],[7,8,9]])')" />
In dem folgenden Beispiel wird eine Matrixvariable "A" erzeugt und anschließend der Rang von "A" in der Variable "rang" gespeichert.
<variables>
<option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[0,1,0],[0,0,1],[-2,1,2]])')" />
<option name="rang" type="single" cas="Evaluator" value="evaluateInSage('[var=A].rank()')" />
</variables>
Erzeugt eine Variable A vom Typ matrix und bezieht sich auf eine 3x3-Matrix mit Einträgen in Q. Die genauen Einträge der Matrix stehen in eckigen Klammern. Außerdem wird eine Variable rang vom Typ single erzeugt, welche den Rang der Variable A berechnet. In diesen Beispielen wäre A=(Matrix) und rang=3.
<variales>
<option name="v1" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,1,[1,0,0])')" />
<option name="v2" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,1,[0,1,0])')" />
<option name="v3" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,1,[0,0,1])')" />
<option name="BasismatrixRang" type="single" cas="Evaluator" value="evaluateInSage('([var=v1].augment([var=v2]).augment([var=v3])).rank())')" />
<option name="basisTester" value="ifthenelse('[var=BasismatrixRang]==3','1','0')" />
<!-- falls basisTester=1, so bilden die Vektoren eine basis des R3-->
</variables>
Prüft ob die Vektoren <math>v_1, v_2</math> und <math>v_3</math> eine Basis des R³ bilden.
Weitere Links
- Ausführliche Sage Dokumentation
- Online-Sage-Evaluator zum Testen von Ausdrücken