Matrix
Klasse Matrix
vgl. Menü: Einfügen -- Matrix
Matrix(v): v Liste von gleichlangen Listen,
Beispiel:
Matrix([[11,12,13],[21,22,23]])
Die Klasse Matrix
ist abgeleitet von Vector
:
Ein Matrix
-Objekt ist ein Vector
von gleichlangen Vector
-Objekten.
Die Elemente können mit Doppelindizes (z.B.: A[i,k]
) angesprochen werden.
Indizes werden (wie in Python-Listen etc.) ab 0 gezählt.
vgl. Klassenmethoden mit Matrix.
Basisklasse: Vector
Übersicht:
Matrix (v)
Methode | Bedeutung |
fromFunction (m, n, fn, offset=0) | Durch Funktion fn berechnete m*n -Matrix |
fromString (s) | Matrix aus String |
identity (n) | n*n-Einheitsmatrix |
null (m, n=0) | m*n-Nullmatrix |
random (m,n=0, r=100) | m*n-Matrix mit Zufallswerten 0..r-1 |
Operator | Bedeutung |
x + y | Matrix addition operator |
x[i] | Counts from 0 A[i] à i-th row vector A[i,k] à element in i-th row, k-th column |
~x | |
x * y | Scalar or matrix multiplication |
-x | |
str(x) | |
x[i] = y | Counts from 0 A[i] à i-th row vector A[i,k] à element in i-th row, k-th column |
x - y | Matrix subtraction operator |
Methode | Bedeutung |
adjoint () | Adjungierte Matrix |
cofactor (i, k) | Kofaktor zur Zeile i und der Spalte k |
colRange () | Liste aller Spaltenindizes |
complement (i, k) | Matrix ohne die Zeile i und die Spalte k |
copy () | unabhängige Kopie der Matrix A |
det () | Determinante der Matrix A |
float () | gibt die Matrix A zurück, in der alle Elemente nach float konvertiert sind |
gaussElim (jordan=True) | Zeilenstufenform der Matrix A. |
gramSchmidt (normalize=False) | Gram-Schmidt'sches Orthogonalisierungsverfahren. |
height () | Anzahl der Zeilen der Matrix A |
inverse () | Inverse Matrix A |
isSquare () | Wahrheitswert (A quadratisch) |
joinBottom (B) | Vertikale Verkettung von A mit B |
joinRight (B) | Horizontale Verkettung von A mit B |
leastSquares (b) | Lösung der Normalgleichung |
lup () | LRP-Zerlegung (LUP decomposition) der Matrix |
minor (i, k) | Minor zur Zeile i und der Spalte k |
operators () | Nur zur Dokumentation |
rank () | Rang der Matrix A |
rowRange () | Liste aller Zeilenindizes |
solve (b) | Lösung x des linearen Gleichungssystems Ax = b |
str (i,k) | String-Darstellung des Elements [i,k] |
submatrix (i, k, m, n) | m*n-Untermatrix (Zeilen i..i+m-1, Spalten k..k+n-1) |
transp () | berechnet die Transponierte der Matrix A |
width () | Anzahl der Spalten der Matrix A |
Konstruktor
Aufruf: Matrix(v)
Matrix.fromFunction(m,n, fn, offset=0)
Aufruf: Matrix.fromFunction(m, n, fn, offset=0)
Beschreibung:
Durch Funktion fn
berechnete m*n
-Matrix
fn
muss eine zweistellige Funktion sein.
Das allgemeine Element A[i,k]
wird mit fn(i+offset,k+offset)
berechnet.
Beispiel:
Matrix.fromFunction(2,4, pow, 1)
liefert die Matrix
/ 1 1 1 1 \ | | \ 2 4 8 16 /
Matrix.fromString(s)
Aufruf: Matrix.fromString(s)
Beschreibung:
Matrix aus String
Im String s werden die Elemente der Matrix zeilenweise angegeben.
Die Zeilen werden durch Semikolon getrennt, die Elemente innerhalb der Zeilen durch Komma.
Elemente können auch rational sein (mit Schrägstrich).
Beispiel:
Matrix.fromString("1, 2, 3.14; 4/5, 5, 6")
liefert die Matrix
/ 1 2 3.14 \ | | \ 4/5 5 6 /
Matrix.identity(n)
Aufruf: Matrix.identity(n)
Beschreibung:
n*n-Einheitsmatrix
Matrix.null(m, n=0)
Aufruf: Matrix.null(m, n=0)
Beschreibung:
m*n-Nullmatrix
Quadratische Matrix, falls n weggelassen wird.
Matrix.random(m,n=0, r=100)
Aufruf: Matrix.random(m,n=0, r=100)
Beschreibung:
m*n-Matrix mit Zufallswerten 0..r-1
A.__add__(B)
Aufruf: x + y
Beschreibung:
Matrix addition operator
Instead of A = A + B you may write A += B.
Definition of the Index operator []
Aufruf: x[i]
Beschreibung:
Counts from 0
A[i] à i-th row vector
A[i,k] à element in i-th row, k-th column
Operator ~ (transposition)
Aufruf: ~x
Beschreibung:
A.__sub__(B)
Aufruf: x * y
Beschreibung:
Scalar or matrix multiplication
Instead of A = A * B you may write A *= B.
unary minus operator
Aufruf: -x
Beschreibung:
Object representation as string
Aufruf: str(x)
Beschreibung:
Definition of the Index operator [] for assignments
Aufruf: x[i] = y
Beschreibung:
Counts from 0
A[i] à i-th row vector
A[i,k] à element in i-th row, k-th column
A.__sub__(B)
Aufruf: x - y
Beschreibung:
Matrix subtraction operator
Instead of A = A - B you may write A -= B.
A.adjoint()
Aufruf: A.adjoint()
Beschreibung:
Adjungierte Matrix
A.cofactor(i, k)
Aufruf: A.cofactor(i, k)
Beschreibung:
Kofaktor zur Zeile i und der Spalte k
(Minor mit Vorzeichen)
A.rowRange()
Aufruf: A.colRange()
Beschreibung:
Liste aller Spaltenindizes
A.complement(i, k)
Aufruf: A.complement(i, k)
Beschreibung:
Matrix ohne die Zeile i und die Spalte k
(Algebraisches Komplement)
A.copy()
Aufruf: A.copy()
Beschreibung:
unabhängige Kopie der Matrix A
A.det()
Aufruf: A.det()
Beschreibung:
Determinante der Matrix A
A.float()
Aufruf: A.float()
Beschreibung:
gibt die Matrix A zurück, in der alle Elemente nach float
konvertiert sind
A.gaussElim(jordan=True)
Aufruf: self.gaussElim(jordan=True)
Beschreibung:
Zeilenstufenform der Matrix A.
Wenn jordan True
ist, wird die reduzierte Zeilenstufenform
(Gauß-Jordan-Elimination) zurückgegeben, sonst die einfache Zeilenstufenform (Gauß-Elimination).
A.gramSchmidt(normalize=False)
Aufruf: self.gramSchmidt(normalize=False)
Beschreibung:
Gram-Schmidt'sches Orthogonalisierungsverfahren.
A
muss Matrix aus den (linear unabhängigen)
zu orthogonalisierenden Vektoren (als Zeilen) sein.
Wenn normalize True ist, werden die Vektoren normalisiert.
Rückgabewert: Matrix mit den orthogonalen Vektoren.
Beispiel
A = Matrix([[1,1],[2,0]]) A.gramSchmidt()liefert die Matrix
/ 1 1 \ | | \ 1 -1 /
A.height()
Aufruf: A.height()
Beschreibung:
Anzahl der Zeilen der Matrix A
A.inverse()
Aufruf: A.inverse()
Beschreibung:
Inverse Matrix A
A.isSquare()
Aufruf: A.isSquare()
Beschreibung:
Wahrheitswert (A quadratisch)
A.concat(B)
Aufruf: A.joinBottom(B)
Beschreibung:
Vertikale Verkettung von A mit B
Voraussetzung: Die beiden Matrizen müssen gleich viele Spalten haben.
A.concat(B)
Aufruf: A.joinRight(B)
Beschreibung:
Horizontale Verkettung von A mit B
Voraussetzung: Die beiden Matrizen müssen gleich viele Zeilen haben.
A.leastSquares(b)
Aufruf: A.leastSquares(b)
Beschreibung:
Lösung der Normalgleichung
Rückgabewert: (~A*A).solve(~A*b)
.lup()
Aufruf: self.lup()
Beschreibung:
LRP-Zerlegung (LUP decomposition) der Matrix
Rückgabewert: Tripel (L, U, P) mit P*A = L*R, wobei:
P Permutationsmatrix,
L linke (lower) Dreiecksmatrix mit Einsen auf Diagonale,
U rechte (upper) Dreiecksmatrix ist.
Voraussetzung: Matrix ist invertierbar.
A.minor(i, k)
Aufruf: A.minor(i, k)
Beschreibung:
Minor zur Zeile i und der Spalte k
(Determinante des Algebraischen Komplements)
Matrix.operators()
Aufruf: self.operators()
Beschreibung:
Nur zur Dokumentation
Die Klasse Matrix erlaubt folgende Operatoren:
Op. | Funktion | Beispiele |
---|---|---|
+ | Addition | A + B; A += B |
- | Subtraktion | A - B; A -= B |
* | Matrizenmultiplikation (wenn beide Operanden Matrizen sind) bzw. Skalarmultiplikation (sonst) | a * b; a *= b |
- | unäres Minus | -A |
~ | Transponierte Matrix | ~A |
| | Verkettung | A | B; A |= B |
[ ] | Indexoperator | A[i,k] A[i] (Zeilenvektor) |
A.rank()
Aufruf: A.rank()
Beschreibung:
Rang der Matrix A
A.rowRange()
Aufruf: A.rowRange()
Beschreibung:
Liste aller Zeilenindizes
A.solve(b)
Aufruf: A.solve(b)
Beschreibung:
Lösung x des linearen Gleichungssystems Ax = b
b kann Vektor oder Spaltenmatrix sein.
A.str(i,k)
Aufruf: A.str(i,k)
Beschreibung:
String-Darstellung des Elements [i,k]
A.submatrix(i, k, m, n)
Aufruf: A.submatrix(i, k, m, n)
Beschreibung:
m*n-Untermatrix (Zeilen i..i+m-1, Spalten k..k+n-1)
A.transp()
Aufruf: A.transp()
Beschreibung:
berechnet die Transponierte der Matrix A
kürzer: ~A
A.width()
Aufruf: A.width()
Beschreibung:
Anzahl der Spalten der Matrix A