restart;Die meisten Operationen von Vektoren und Matrizen finden sich im Lineare-Algebra-Paket, welches gesondert geladen werden mu\337:with(linalg):Vektoren, SkalarprodukteVektorenVektoren werden definiert:a:=vector([3,2]); b:=vector([-1,0]);Auf die einzelnen Komponenten eines Vektors kann zugegriffen werden:a[2];Vektoren werden nicht einfach addiert/subtrahiert/skalarmultipliziert, sondern man wertet Vektorausdr\374cke mit "evalm" aus:a+b;evalm(a+b);3*a;evalm(3*a);Skalarprodukt, NormDas Skalarprodukt von Vektoren wird mit dem "dotprod"-Befehl berechnet:a:=vector([1,2,-3]); b:=vector([-4,0,3]);dotprod(a,b);Die \374bliche (Euklidische) Norm eines Vektors wird mit dem Befehl "norm(..,2)" berechnet:norm(a,2);Die (Euklidische) Norm eines Vektors kann auch \374ber das Skalarprodukt berechnet werden:sqrt(dotprod(a,a));a:='a': b:='b':Winkel zwischen Vektorena:=[sqrt(12),1,6]; b:=[0,1,1];Der Winkel zwischen zwei Vektoren kann \374ber die bekannte Formel bestimmt werden:winkel:=arccos (dotprod(a,b) / (norm(a,2)*norm(b,2)) );
Der Winkel in Radiant wird auf Grad umgerechnet:convert(winkel,degrees);Matrizen, DeterminantenDefinition von Matrizen, Addition/Subtraktion/Skalarmultiplikation von MatrizenMatrizen werden definiert \374ber den "matrix"-Befehl:A:=matrix( [ [1,0,-3], [3,-9,0] ] );B:=matrix(2,3, [1/3,0,-10,sqrt(2),4,6] );Matrizen k\366nnen auch \374ber den "array"-Befehl definiert werden:C:=array(1..2,1..3, [[1,2,3],[4,5,6]]);Auswertungen in der linearen Algebra erfolgen auch bei Matrizen durch evalm:evalm(2*A-3*B); evalm(A+C);Spezielle Matrizen: Transponierte Matrix, Diagonalmatrix, EinheitsmatrixDie transponierte Matrix berechnet sich mit "transpose":A:=matrix( [ [1,-2,0], [-4,0,3]] );transpose(A);Eine Diagonalmatrix kann durch Angabe der Diagonalelemente beschrieben werden:B:=diag(1,2,3,4,-6);Die Einheitsmatrix kann ebenfalls als Diagonalmatrix eingegeben werden:C:=diag(1,1,1);MatrizenmultiplikationDefinition der Matrizen A und B:A:=matrix( [ [1,-1,2], [0,3,4] ] ); B:=matrix( [ [4,0,-3], [-1,-2,3] , [1,0,-5]] ); Die Matrizenmultiplikation wird durch den Operator "&*" beschrieben:A*B; evalm(A*B); A&*B; evalm(A&*B);Maple pr\374ft nach, ob die Matrizenmultiplikation \374berhaupt durchf\374hrbar ist:evalm(A&*A);A:='A':B:='B':DeterminantenDie Matrix A wird definiertA:=matrix( [ [1,-2,3], [0,5,-6], [-3,7,2] ] );Die Determinante von A wird berechnet durch den "det"-Befehl:det(A);A:='A':Lineare Gleichungssysteme, Rangbegriff, InverseLineare GleichungssystemeMaple kann nicht nur einzelne Gleichungen, sondern ganze Gleichungssysteme auswerten:(Dabei werden zun\344chst die einzelnen Gleichungen definiert, danach die Gleichungen mit dem "solve"-Befehl gel\366st)Im Folgenden das Beispiel eines linearen Gleichungssystems mit 3 Gleichungen und 3 Unbekannten, welches eine eindeutige L\366sung besitzt:eq1:=3*x1-3*x2+6*x3=9; eq2:=2*x1+3*x3=6; eq3:=x1+x2+2*x3=4; solve({eq1,eq2,eq3},{x1,x2,x3});Im Folgenden das Beispiel eines linearen Gleichungssystems mit 3 Gleichungen und 3 Unbekannten, welches keine L\366sung besitzt:eq1:=3*x1-3*x2+6*x3=9; eq2:=2*x1+3*x3=6; eq3:=x1+x2+x3=4; solve({eq1,eq2,eq3},{x1,x2,x3});Im Folgenden das Beispiel eines linearen Gleichungssystems mit 3 Gleichungen und 3 Unbekannten, welches unendlich viele L\366sungen besitzt:eq1:=3*x1-3*x2+6*x3=9; eq2:=2*x1+3*x3=7; eq3:=x1+x2+x3=4; solve({eq1,eq2,eq3},{x1,x2,x3});VarianteEine Matrix (einschlie\337lich) rechter Seite wird definiert, sie wird mit Gausselimination und R\374cksubstitution gel\366st:(Wir verwenden das erste Beispiel von oben.)A:=matrix( [ [3,-3,6,9], [2,0,3,6], [1,1,2,4] ] );GE:=gausselim(A);backsub(GE);A:='A':Rang von MatrizenA:=matrix( [ [1,2,3], [4,5,6], [5,7,9] ] );Der Rang einer Matrix wird mit dem "rank"-Befehl ermittelt:rank(A);Die Matrix kann z.B. noch um eine Spalte erweitert werden. Dann wird der Rang der erweiterten Matrix bestimmt:b:=vector( [1,2,4] );Ab:=augment(A,b);rank(Ab);Inverse MatrizenBerechnung der Inversen der Matrix AA:=matrix( [ [1,0,1], [1,1,2], [0,-1,0] ] );Ainvers:=inverse(A);Test, dass wirklich die Inverse vorliegt:evalm(A&*Ainvers);VarianteErweiterte Matrix B (links Matrix A, rechts Einheitsmatrix) wird aufgestellt, Gauss-Jordan-Verfahren wird angewandt,so dass im Ergebnis links die Einheitsmatrix, rechts die Inverse von A stehtB:=matrix( [ [1,0,1,1,0,0], [1,1,2,0,1,0], [0,-1,0,0,0,1] ] );GJ:=gaussjord(B);