EvaluateInSage: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 95: | Zeile 95: | ||
|- | |- | ||
|} | |} | ||
===Beispiele=== | ===Beispiele=== |
Version vom 4. April 2017, 12:38 Uhr
Beschreibung
Mit der Funktion EvaluateInSage lassen sich 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
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 |
Sei nun eine 3x3-Matrix variabel namens A erstellt.
<option name="A" type="matrix" cas="Evaluator" value="evaluateInSage('matrix(QQ,3,3,[[1,2,3],[4,5,6],[7,8,9]])')" />
argument | Typ | Beschreibung |
[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
<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')" /> </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