restart;Die meisten Operationen von Vektoren und Matrizen finden sich im Lineare-Algebra-Paket, welches gesondert geladen werden mu\337:with(linalg):Warning, the protected names norm and trace have been redefined and unprotectedVektoren, Skalarprodukte
<Text-field layout="Heading 1" style="_cstyle261"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Vektoren</Font></Text-field>Vektoren werden definiert:a:=vector([3,2]); b:=vector([-1,0]);NiM+SSJhRzYiLUkndmVjdG9yRzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckIiIkIiIjNiM+SSJiRzYiLUkndmVjdG9yRzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckISIiIiIhAuf die einzelnen Komponenten eines Vektors kann zugegriffen werden:a[2];NiMiIiM=Vektoren werden nicht einfach addiert/subtrahiert/skalarmultipliziert, sondern man wertet Vektorausdr\374cke mit "evalm" aus:a+b;NiMsJkkiYUc2IiIiIkkiYkdGJUYmevalm(a+b);NiMtSSd2ZWN0b3JHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyQiIiNGKw==3*a;NiMsJEkiYUc2IiIiJA==evalm(3*a);NiMtSSd2ZWN0b3JHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyQiIioiIic=
<Text-field layout="Heading 1" style="_cstyle263"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Skalarprodukt, Norm</Font></Text-field>Das Skalarprodukt von Vektoren wird mit dem "dotprod"-Befehl berechnet:a:=vector([1,2,-3]); b:=vector([-4,0,3]);NiM+SSJhRzYiLUkndmVjdG9yRzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclIiIiIiIjISIkNiM+SSJiRzYiLUkndmVjdG9yRzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclISIlIiIhIiIkdotprod(a,b);NiMhIzg=Die \374bliche (Euklidische) Norm eines Vektors wird mit dem Befehl "norm(..,2)" berechnet:norm(a,2);NiMqJCIjOSMiIiIiIiM=Die (Euklidische) Norm eines Vektors kann auch \374ber das Skalarprodukt berechnet werden:sqrt(dotprod(a,a));NiMqJCIjOSMiIiIiIiM=a:='a': b:='b':
<Text-field layout="Heading 1" style="Heading 1"><Font bold="false" size="14">Winkel zwischen Vektoren</Font></Text-field>a:=[sqrt(12),1,6]; b:=[0,1,1];NiM+SSJhRzYiNyUsJCokIiIkIyIiIiIiI0YsRisiIic=NiM+SSJiRzYiNyUiIiEiIiJGKA==Der Winkel zwischen zwei Vektoren kann \374ber die bekannte Formel bestimmt werden:winkel:=arccos (dotprod(a,b) / (norm(a,2)*norm(b,2)) ); NiM+SSd3aW5rZWxHNiIsJEkjUGlHSSpwcm90ZWN0ZWRHRigjIiIiIiIlDer Winkel in Radiant wird auf Grad umgerechnet:convert(winkel,degrees);NiMsJEkoZGVncmVlc0c2IiIjWA==
Matrizen, Determinanten
<Text-field layout="Heading 1" style="_cstyle264"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Definition von Matrizen, Addition/Subtraktion/Skalarmultiplikation von Matrizen</Font></Text-field>Matrizen werden definiert \374ber den "matrix"-Befehl:A:=matrix( [ [1,0,-3], [3,-9,0] ] );NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckNyUiIiIiIiEhIiQ3JSIiJCEiKkYvB:=matrix(2,3, [1/3,0,-10,sqrt(2),4,6] );NiM+SSJCRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckNyUjIiIiIiIkIiIhISM1NyUqJCIiIyNGL0Y1IiIlIiInMatrizen k\366nnen auch \374ber den "array"-Befehl definiert werden:C:=array(1..2,1..3, [[1,2,3],[4,5,6]]);NiM+SSJDRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckNyUiIiIiIiMiIiQ3JSIiJSIiJiIiJw==Auswertungen in der linearen Algebra erfolgen auch bei Matrizen durch evalm:evalm(2*A-3*B); NiMtSSdtYXRyaXhHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyQ3JSIiIiIiISIjQzclLCYiIidGLCokIiIjI0YsRjMhIiQhI0khIz0=evalm(A+C);NiMtSSdtYXRyaXhHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyQ3JSIiI0YsIiIhNyUiIighIiUiIic=
<Text-field layout="Heading 1" style="_cstyle280"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Spezielle Matrizen: Transponierte Matrix, Diagonalmatrix, Einheitsmatrix</Font></Text-field>Die transponierte Matrix berechnet sich mit "transpose":A:=matrix( [ [1,-2,0], [-4,0,3]] );NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckNyUiIiIhIiMiIiE3JSEiJUYwIiIktranspose(A);NiMtSSdtYXRyaXhHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyU3JCIiIiEiJTckISIjIiIhNyRGMCIiJA==Eine Diagonalmatrix kann durch Angabe der Diagonalelemente beschrieben werden:B:=diag(1,2,3,4,-6);NiM+SSJCRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzcnNyciIiIiIiFGL0YvRi83J0YvIiIjRi9GL0YvNydGL0YvIiIkRi9GLzcnRi9GL0YvIiIlRi83J0YvRi9GL0YvISInDie Einheitsmatrix kann ebenfalls als Diagonalmatrix eingegeben werden:C:=diag(1,1,1);NiM+SSJDRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyUiIiIiIiFGLzclRi9GLkYvNyVGL0YvRi4=
<Text-field layout="Heading 1" style="_cstyle267"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Matrizenmultiplikation</Font></Text-field>Definition der Matrizen A und B:A:=matrix( [ [1,-1,2], [0,3,4] ] ); NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzckNyUiIiIhIiIiIiM3JSIiISIiJCIiJQ==B:=matrix( [ [4,0,-3], [-1,-2,3] , [1,0,-5]] ); NiM+SSJCRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyUiIiUiIiEhIiQ3JSEiIiEiIyIiJDclIiIiRi8hIiY=Die Matrizenmultiplikation wird durch den Operator "&*" beschrieben:A*B; NiMqJkkiQUc2IiIiIkkiQkdGJUYmevalm(A*B); Error, (in evalm/evaluate) use the &* operator for matrix/vector multiplication A&*B; NiMtSSMmKkc2IjYkSSJBR0YlSSJCR0Ylevalm(A&*B);NiMtSSdtYXRyaXhHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyQ3JSIiKCIiIyEjOzclIiIiISInISM2Maple pr\374ft nach, ob die Matrizenmultiplikation \374berhaupt durchf\374hrbar ist:evalm(A&*A);Error, (in linalg:-multiply) non matching dimensions for vector/matrix productA:='A':B:='B':
<Text-field layout="Heading 1" style="_cstyle269"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Determinanten</Font></Text-field>Die Matrix A wird definiertA:=matrix( [ [1,-2,3], [0,5,-6], [-3,7,2] ] );NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyUiIiIhIiMiIiQ3JSIiISIiJiEiJzclISIkIiIoIiIjDie Determinante von A wird berechnet durch den "det"-Befehl:det(A);NiMiI2g=A:='A':
Lineare Gleichungssysteme, Rangbegriff, Inverse
<Text-field layout="Heading 1" style="_cstyle271"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Lineare Gleichungssysteme</Font></Text-field>Maple 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; NiM+SSRlcTFHNiIvLChJI3gxR0YlIiIkSSN4MkdGJSEiJEkjeDNHRiUiIiciIio=NiM+SSRlcTJHNiIvLCZJI3gxR0YlIiIjSSN4M0dGJSIiJCIiJw==NiM+SSRlcTNHNiIvLChJI3gxR0YlIiIiSSN4MkdGJUYpSSN4M0dGJSIiIyIiJQ==solve({eq1,eq2,eq3},{x1,x2,x3});NiM8JS9JI3gyRzYiIyIiIiIiIy9JI3gzR0YmRigvSSN4MUdGJiMiIiRGKQ==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; NiM+SSRlcTFHNiIvLChJI3gxR0YlIiIkSSN4MkdGJSEiJEkjeDNHRiUiIiciIio=NiM+SSRlcTJHNiIvLCZJI3gxR0YlIiIjSSN4M0dGJSIiJCIiJw==NiM+SSRlcTNHNiIvLChJI3gxR0YlIiIiSSN4MkdGJUYpSSN4M0dGJUYpIiIlsolve({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; NiM+SSRlcTFHNiIvLChJI3gxR0YlIiIkSSN4MkdGJSEiJEkjeDNHRiUiIiciIio=NiM+SSRlcTJHNiIvLCZJI3gxR0YlIiIjSSN4M0dGJSIiJCIiKA==NiM+SSRlcTNHNiIvLChJI3gxR0YlIiIiSSN4MkdGJUYpSSN4M0dGJUYpIiIlsolve({eq1,eq2,eq3},{x1,x2,x3});NiM8JS9JI3gzRzYiLCZJI3gyR0YmIiIjISIiIiIiL0kjeDFHRiYsJiIiJkYrRighIiQvRihGKA==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] ] );NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyYiIiQhIiQiIiciIio3JiIiIyIiIUYuRjA3JiIiIkY2RjMiIiU=GE:=gausselim(A);NiM+SSNHRUc2Ii1JJ21hdHJpeEc2JEkqcHJvdGVjdGVkR0YpSShfc3lzbGliR0YlNiM3JTcmIiIkISIkIiInIiIqNyYiIiEiIiMhIiJGMzcmRjNGMyIiIkY3backsub(GE);NiMtSSd2ZWN0b3JHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyUjIiIkIiIjIyIiIkYtRi8=A:='A':
<Text-field layout="Heading 1" style="_cstyle275"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Rang von Matrizen</Font></Text-field>A:=matrix( [ [1,2,3], [4,5,6], [5,7,9] ] );NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyUiIiIiIiMiIiQ3JSIiJSIiJiIiJzclRjMiIigiIio=Der Rang einer Matrix wird mit dem "rank"-Befehl ermittelt:rank(A);NiMiIiM=Die Matrix kann z.B. noch um eine Spalte erweitert werden. Dann wird der Rang der erweiterten Matrix bestimmt:b:=vector( [1,2,4] );NiM+SSJiRzYiLUkndmVjdG9yRzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclIiIiIiIjIiIlAb:=augment(A,b);NiM+SSNBYkc2Ii1JJ21hdHJpeEc2JEkqcHJvdGVjdGVkR0YpSShfc3lzbGliR0YlNiM3JTcmIiIiIiIjIiIkRi43JiIiJSIiJiIiJ0YvNyZGMyIiKCIiKkYyrank(Ab);NiMiIiQ=
<Text-field layout="Heading 1" style="_cstyle286"><Font family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">Inverse Matrizen</Font></Text-field>Berechnung der Inversen der Matrix AA:=matrix( [ [1,0,1], [1,1,2], [0,-1,0] ] );NiM+SSJBRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyUiIiIiIiFGLjclRi5GLiIiIzclRi8hIiJGLw==Ainvers:=inverse(A);NiM+SShBaW52ZXJzRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNyUiIiMhIiJGLzclIiIhRjFGLzclRi8iIiJGMw==Test, dass wirklich die Inverse vorliegt:evalm(A&*Ainvers);NiMtSSdtYXRyaXhHNiRJKnByb3RlY3RlZEdGJkkoX3N5c2xpYkc2IjYjNyU3JSIiIiIiIUYtNyVGLUYsRi03JUYtRi1GLA==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] ] );NiM+SSJCRzYiLUknbWF0cml4RzYkSSpwcm90ZWN0ZWRHRilJKF9zeXNsaWJHRiU2IzclNygiIiIiIiFGLkYuRi9GLzcoRi5GLiIiI0YvRi5GLzcoRi8hIiJGL0YvRi9GLg==GJ:=gaussjord(B);NiM+SSNHSkc2Ii1JJ21hdHJpeEc2JEkqcHJvdGVjdGVkR0YpSShfc3lzbGliR0YlNiM3JTcoIiIiIiIhRi8iIiMhIiJGMTcoRi9GLkYvRi9GL0YxNyhGL0YvRi5GMUYuRi4=