Kapitel 20: Vektoren, Matrizen und Eigenwerte



20.1 Vektoren

Mathematische Formulierung: Definition eines Vektors v

Maple-Befehl: vector ( [v1,v2, ..., vn] );

Parameter: [v1,v2, ..., vn]: Liste von Zahlen.

Beispiel: v := matrix([[3], [4], [5]]) .

> restart:
> v := vector([3, 4, 5]);

v := vector([3, 4, 5])

> v[2];

4

Hinweise: Mit v[2] wird auf die zweite Komponente des Vektors zugegriffen. Für viele Befehle des linalg -Package genügt es einfach nur die Liste der Zahlen anzugeben und auf die zusätzliche Angabe von vector zu verzichten.

Siehe auch: norm , angle , linalg .


20.2 Vektorrechnung

Mathematische Formulierung: Gesucht sind die Ergebnisse der Vektoroperationen

v[1] <+, -, *, Skalarprodukt, Kreuzprodukt> v[2]

Maple-Befehl: evalm ( v[1] <+, -, *> v[2] );

dotprod ( v[1] , v[2] );

crossprod ( v[1] , v[2] );

Parameter: v[1] , v[2] : Vektoren oder Skalare.

Beispiel: v[1] = [3, 4, 5] , v[2] = [-3, 2, -5]

> restart:
> v1 := [3, 4, 5];
> v2 := [-3, 2, -5];

v1 := [3, 4, 5]
v2 := [-3, 2, -5]

> evalm(4*v1 + 2*v2);

vector([6, 20, 10])

> with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected

> dotprod(v1,v2); 

-26

> crossprod(v1,v2);

vector([-30, 0, 18])

Hinweise: Man beachte, dass das Kreuzprodukt nur für Vektoren der Länge 3 definiert ist. Die Befehle dotprod und crossprod stehen im linalg -Package, das mit with(linalg) geladen wird. Die Warning kann ignoriert werden.

Siehe auch: vector , norm , angle , linalg .


20.3 Winkel zwischen zwei Vektoren

Mathematische Formulierung: Gesucht ist der Winkel theta , den zwei Vektoren miteinander einschließen

cos(theta) = u*v/(abs(u)*abs(v))

Maple-Befehl: angle (u, v);

Parameter: u, v: Vektoren oder Listen von Zahlen.

Beispiel: u = [1, -1, 0] , v = [3, 4, 5] .

> restart:
> with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected

> u := ([1, -1, 0]); 
> v := ([3, 4, 5]);

u := [1, -1, 0]
v := [3, 4, 5]

> angle(u, v);

Pi-arccos(1/100*sqrt(2)*sqrt(50))

> evalf(%);

1.670963748

> convert(%, degrees);

300.7734746*degrees/Pi

Hinweise: Mit evalf (%) wird der Winkel in der float-Darstellung angegeben und mit convert (%, degrees ) ins Winkelmass konvertiert. angle ist im linalg -Package enthalten, das mit with(linalg) geladen wird. Die Warning kann ignoriert werden.

Siehe auch: vector , angle , linalg .


20.4 Matrizen

Mathematische Formulierung: Definition einer mxn-Matrix A , bestehend aus m Zeilen der Länge n

Maple-Befehl: matrix ( [ [a11, a12,..., a1n], [a21, a22,..., a2n], ..., [am1,am2, ..., amn] ] );

Parameter: [ai1, ai2,..., ain]: i.-te Zeile der Matrix.

Beispiel: A := matrix([[-1, 1, 0], [0, 2, 1], [1, 2, 4]])

> restart:
> A := matrix([ [-1,1,0], [0,2,1], [1,2,4] ]);

A := matrix([[-1, 1, 0], [0, 2, 1], [1, 2, 4]])

Hinweise: Die Definition einer Matrix erfolgt zeilenweise, indem jede Zeile in Form einer Liste angegeben wird. Eine Matrix ist in Maple ein zweidimensionales Feld a[i,j] bestehend aus einem Zeilen- und Spaltenindex indiziert von 1 ab.

Siehe auch: vector .


20.5 Matrizenrechnung

Mathematische Formulierung: Gesucht sind die Ergebnisse der Matrizenoperationen <+, -, * > bzw. die Transponierte, Potenz und Inverse einer Matrix

A[1] <+, -, *> A[2]

Maple-Befehl: evalm ( A[1] <+, -, &*> A[2] );
transpose ( A ),
evalm ( A ^n),
inverse ( A ),

Parameter: A[1] , A[2] , A : Matrizen.

Beispiele:

> restart:
> A := matrix([ [-1,1,0], [0,2,1], [1,2,4] ]);
> B := matrix([ [0,0,1], [0,4,0], [4,1,2]]);

A := matrix([[-1, 1, 0], [0, 2, 1], [1, 2, 4]])
B := matrix([[0, 0, 1], [0, 4, 0], [4, 1, 2]])

> evalm(A&*B);

matrix([[0, 4, -1], [4, 9, 2], [16, 12, 9]])

> evalm(4*A - B);

matrix([[-4, 4, -1], [0, 4, 4], [0, 7, 14]])

> evalm(A&*[2,1,0]);

vector([-1, 2, 4])

> evalm(A^3);

matrix([[0, 5, 5], [5, 25, 30], [15, 65, 85]])

> with(linalg):
> inverse(B);
Warning, the protected names norm and trace have been redefined and unprotected

matrix([[-1/2, -1/16, 1/4], [0, 1/4, 0], [1, 0, 0]]... 

Hinweise: Es wird davon ausgegangen, dass die Dimensionen der Matrizen passend für die Matrizenoperationen sind. Eine Matrix wird mit dem matrix -Befehl erzeugt, wobei die Definition zeilenweise erfolgt. Für die Matrizenmultiplikation muss &* verwendet werden, da der * -Operator nur für kommutative Multiplikationen erlaubt ist. Für A[1] , A[2] können auch skalare Größen bzw. Vektoren gesetzt werden, sofern diese Sinn machen. Für manche Matrizenoperationen, wie z.B. das Invertieren der Matrix mit inverse , muss das linalg -Package mit with(linalg) geladen werden. Die Warning kann ignoriert werden.

Siehe auch: matrix , rank .


20.6 Determinante

Mathematische Formulierung: Gesucht ist die Determinante einer n x n-Matrix A

det(A) = det(matrix([[a[1,1], a[1,2], `...`, a[1,n]...

Maple-Befehl: det (A);

Parameter: A: n x n-Matrix

Beispiel: A := matrix([[-1, 1, 0, -2, 0], [0, 2, 1, 1, 4], [1...

> restart:
> A:=matrix([ [-1,1,0,-2,0], [0,2,1,1,4], [1,2,4,3,2], [2,1,0,0,1], [0,4,0,4,0]]);

A := matrix([[-1, 1, 0, -2, 0], [0, 2, 1, 1, 4], [1...

> with(linalg, det):
> Det(A) = det(A);

Det(A) = -384

Hinweise: Der Befehl det steht im linalg -Package, das mit with(linalg) oder with(linalg, det) geladen wird. Die Warning kann ignoriert werden.

Siehe auch: matrix , rank .


20.7 Wronski-Determinante

Mathematische Formulierung: Gesucht ist die Wronski-Determinante zu einer Liste von n Funktionen f[1] ( x ), ..., f[n] ( x )

det(A) = det(matrix([[f[1], f[2], `...`, f[n]], [Di...

Maple-Befehl: wronskian ([f1, ..., fn], x);
det (%);

Parameter: [f1, ..., fn]: Liste von n Funktionen in der Variablen x

Beispiel: exp(x), sinh(x), cosh(x)

> restart:
> with(linalg):
> A:= [exp(x), sinh(x), cosh(x)];

Warning, the protected names norm and trace have been redefined and unprotected
A := [exp(x), sinh(x), cosh(x)] 

> Wr:= wronskian(A, x);

Wr := matrix([[exp(x), sinh(x), cosh(x)], [exp(x), ...

> det(Wr);

0

Da die Determinante Null ergibt, sind die 3 Funktionen linear abhängig.

Hinweise: Der Befehl wronskian steht im linalg -Package, das mit with(linalg) geladen wird. Die Warning kann ignoriert werden.

Siehe auch: det .


20.8 Rang einer (m x n)-Matrix

Mathematische Formulierung: Gesucht ist der Rang einer m x n-Matrix A (=Anzahl der linear unabhängigen Spalten der Matrix =Anzahl der linear unabhängigen Zeilen der Matrix)

Rang(A) = rang(matrix([[a[1,1], a[1,2], `...`, a[1,...

Maple-Befehl: rank (A);

Parameter: A: m x n-Matrix

Beispiel: A := matrix([[-1, 1, 0, -2, 0], [0, 2, 1, 1, 4], [1...

> restart:
> A:=matrix([ [-1,1,0,-2,0], [0,2,1,1,4], [1,2,4,3,2], [2,1,0,0,1], [0,4,0,4,0]]);

A := matrix([[-1, 1, 0, -2, 0], [0, 2, 1, 1, 4], [1...

> with(linalg, rank):
> Rang(A) = rank(A);

Rang(A) = 5

Hinweise: Der Befehl rank steht im linalg -Package, das mit with(linalg) oder with(linalg, rank) geladen wird. Die Warning kann ignoriert werden.

Siehe auch: matrix , det .


20.9 Eigenwerte und Eigenvektoren

Mathematische Formulierung: Gesucht sind die Eigenwerte und Eigenvektoren einer n x n-Matrix A

A = matrix([[a[1,1], a[1,2], `...`, a[1,n]], [a[2,1...

Maple-Befehl: eigenvals ( A );
eigenvects ( A );

Parameter: A : (nxn)-Matrix.

Beispiele:

> restart:
> A := matrix([ [3,1,1], [1,3,-1], [0,0,4]]);

A := matrix([[3, 1, 1], [1, 3, -1], [0, 0, 4]])

> with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected

> eigenvals(A); 

2, 4, 4

> eigenvects(A);

[2, 1, {vector([-1, 1, 0])}], [4, 2, {vector([1, 1,...

Hinweise: Das Ergebnis von eigenvals (A) ist eine Liste der Eigenwerte; doppelte Eigenwerte werden zweimal aufgeführt. eigenvects (A) besteht aus einer Sequenz von Listen. Jede Liste hat den Aufbau [Eigenwert, Vielfachheit, Menge aus zum Eigenwert gehörender unabhängiger Vektoren]. Der Eigenwert 2 hat die Vielfachheit 1 und der zugehörige Eigenvektor ist vector([-1, 1, 0]) . Der Eigenwert 4 hat die Vielfachheit 2 und zugehörige linear unabhängige Eigenvektoren sind vector([1, 1, 0]) und vector([1, 0, 1]) . Vor der Verwendung der Befehle muss das linalg -Package mit with(linalg) geladen werden. Die Warning kann ignoriert werden.

Siehe auch: matrix , charpoly .


20.10 Charakteristisches Polynom

Mathematische Formulierung: Gesucht ist das charakteristische Polynom einer n x n-Matrix A

det(A-lambda*I) = det(matrix([[a[1,1], a[1,2], `......

Maple-Befehl: charpoly ( A , lambda);

Parameter: A : (nxn)-Matrix

lambda: Variablenname des charakteristischen Polynoms

Beispiele:

> restart:
> A := matrix([ [3,1,1], [1,3,-1], [0,0,4]]);

A := matrix([[3, 1, 1], [1, 3, -1], [0, 0, 4]])

> with(linalg, charpoly):
> charpoly(A, lambda);

lambda^3-10*lambda^2+32*lambda-32

> solve(%=0, lambda);

2, 4, 4

Hinweise: Das charakteristische Polynom ist bei Maple im Gegensatz zur mathematischen Standarddefinition als det( lambda *I-A) festgelegt. Damit ist es bis auf das Vorzeichen mit der Standardnotation gleich. Die Eigenwerte ändern sich aber durch diese spezielle Festlegung nicht. Vor der Verwendung von charpoly muss das linalg -Package mit with(linalg) geladen werden. Die Warning kann ignoriert werden. Mit dem anschließenden solve -Befehl erhält man die Nullstellen des charakteristischen Polynoms, also die Eigenwerte. Sind die Nullstellen des charakteristischen Polynoms keine ganzen oder gebrochenrationalen Zahlen, verwendet man zur Lösung besser den fsolve -Befehl mit der Option complex . Dann werden alle n Nullstellen des charakteristischen Polynoms näherungsweise bestimmt:

Siehe auch: matrix , eigenvals , eigenvects ; fsolve .