EvaluateInSage: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
Zeile 116: Zeile 116:


===Weitere Links===
===Weitere Links===
* [ Ausführliche Sage Dokumentation]
* [http://linear.ups.edu/download/fcla-2.22-sage-4.7.1-preview.pdf Ausführliche Sage Dokumentation]
* [https://sagecell.sagemath.org Online-Sage-Evaluator] zum Testen von Ausdrücken
* [https://sagecell.sagemath.org Online-Sage-Evaluator] zum Testen von Ausdrücken

Version vom 4. April 2017, 13:13 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