Mathematik von T. Arens, F. Hettlich, Ch. Karpfinger, U. Kockelkorn, K. Lichtenegger, H. Stachel (zu Kapitel 15: Vektorraeume)restart; VektorenIm letzten Kapitel haben wir schon die Koeffizientenmatrix und die erweiterte Koeffizientenmatrix als Matrizen eingegeben. Das Rechnen mit Vektoren und Matrizen ist entsprechend in Maple vorgesehen. Der allgemeinste Datentyp, der Matrizen und Vektoren umfasst, sind Felder. Diese werden durch den Befehl array eingegeben. A:=array([[1,2,3],[2,3,4]]); b:=array([[1],[1]]); c:=array([[1,2]]);Beachten Sie die Syntax des Befehls zur Eingabe der Zeilen und Spalten.Es laesst sich direkt auf die einzelnen Elemente eines Feldes zugreifen mitA[2,3]; b[2,1]; c[1,2];Die Felder werden also von 1 beginnend indiziert. Es ist die "default" Einstellung, da wir keine anderen Wuensche angegeben haben. Die allgemeine Version des Befehls array sieht aber diese Moeglichkeit vor.C:=array(0..1,0..1,[[1,2],[3,4]]); C[0,1];Sie sehen die andere Darstellung.Durch eine Indizierung beginnend mit 1 ordnet Maple dem array automatisch den spezielleren Datentyp (type) Matrix zu. type(A,matrix); type(C,matrix);Um Matrizen einzugeben, kann auch der im letzten Kapitel eingefuehrte Befehl matrix genutzt werden.B:=matrix(2,3,[[1,0,0],[1,1,1]]);bei dem zunaechst die Dimensionen, Anzahl der Zeilen und Anzahl der Spalten, angegeben werden muessen.Koordinatenvektoren sind als Datentyp implementiert und koennen mit dem Befehl vector erzeugt werdentype(b,vector);
v:=vector(4,[1,2,3,4]);Anders als im Buch wird der Datentyp vector in Maple als Zeile geschrieben. Der Datentyp vector stellt die Elemente als Liste zusammen und nicht als Feld. Daher erhalten wir bei der Matrix c, die nur aus einer Zeile besteht: type(c,vector);Vektor und Matrix sind in Maple somit wirklich verschiedene Datentypen. Mit dem Befehl convert koennen wir die Datentypen wechseln.convert(c,vector);
convert(v,matrix);Beachten Sie, dass bei der Konvertierung eines Vektors in die entsprechende Matrizenschreibweise der Vektor als Spalte geschrieben wird, wie wir es im Buch vereinbart haben. Die Vektorraumstruktur bei Matrizen oder Vektoren ist fest verankert, sodass die Addition und die skalare Multiplikation definiert sind. Bei passenden Dimensionen, d.h. die Anzahl der Zeilen und die Anzahl der Spalten stimmen ueberein, ergibt sich A+B;
2*A;Offensichtlich wird etwa die Matrix A+B aber nur durch die Symbole angezeigt. Um die vollstaendige Matrix zu sehen, benoetigen wir den Befehl evalm , den wir auch schon im letzten Kapitel eingefuehrt haben.evalm(A+B);
evalm(2*A);Eine Vielzahl von Befehlen zur linearen Algebra steht Ihnen in Maple zur Verfuegung, wenn Sie das Paket linalg laden.with(linalg);Nur zu wenigen der aufgelisteten Befehle koennen Sie sich die Bedeutung aus den bisherigen Kapiteln erklaeren, wie zum Beispiel linsolve oder concat , die wir schon in Kap.14 kennengelernt haben.Bemerkung: Es existiert noch ein weiteres Paket LineareAlgebra in Maple, dass einige andere Routinen zum Umgang mit Matrizen zur Verfuegung stellt. Fuer unsere Zwecke sind die Moeglichkeiten von linalg aber vollstaendig ausreichend.Die lineare Unabhaengigkeit von Vektoren laesst sich nun leicht mit Hilfe von Maple feststellen. Wir geben die Vektoren als Spaltenvektoren ein:a:=matrix(4,1,[1,2,3,4]);
b:=matrix(4,1,[0,1,0,1]);
c:=matrix(4,1,[4,3,2,1]);
d:=matrix(4,1,[1,0,1,0]);sammeln die Vektoren in einer Matrix und suchen nach Loesungen des zugehoerigen, homogenen Gleichungssystems.A:=concat(a,b,c,d);
r:=matrix(4,1,[0,0,0,0]);
linsolve(A,r);Da es unendlich viele Loesung zu diesem System gibt, sind die Vektoren linear abhaengig. PolynomeAuch der Datentyp polynom ist vorgesehen. Ein Ausdruck von der Formrestart:
p:= 4*x+12+x^4-9*x^2;wird als Polynom erkannt.type(p,polynom);Damit stehen einige Befehle zur Verfuegung, die im Umgang mit Polynomen nuetzlich sind. Wir koennen etwa den Grad eines Polynoms erfragendegree(p);oder den Koeffizienten des quadratischen Anteils ermitteln.coeff(p,x,2);An einer Stelle auswerten koennen wir ein Polynom wie gewohnt durchsubs(x=1,p);Die Vektorraumstruktur der Menge der Polynome ist analog zu allgemeinen Ausdruecken offensichtlich. Betrachten wir fuer ein weiteres Polynom (hier mit einem zusaetzlichen Parameter a)q:=x^4+(a^2+a)*x^3+4*a*(a-1)*x-2*a*x^4+1+a^2*x^4;koennen wir die Summe oder ein Vielfaches bekommen, etwar:=2*p+q;Mit dem Befehl sort koennen wir nach den Potenzen sortierenr:=sort(r);und mit collect(r,x,factor);die Koeffizienten zusammenfassen. Mit der zusaetzlichen Option factor werden diese gleich auch noch faktorisieren.Die dem Hornerschema (s. Seite 96) zugrunde liegende Darstellung eines Polynoms laesst sich ermittelnconvert(p,horner,x);genauso wie wir eine Faktorisierung eines Polynoms erfragen koennen.factor(p); Aufgaben
1. Berechnen Sie zu den komplexen VektorenNiMvJSJ1Ryk2JSIiIiUiaUciIiMlIlRH, NiMvJSJ2Ryk2JSwmIiIjIiIiJSJpR0YpLCZGKUYpRiohIiJGKiUiVEc= und NiMvJSJ3Ryk2JSwmIiIiRigqJiIiI0YoJSJpR0YoRigsJkYoRihGKSEiIiwmRipGKEYrRi0lIlRH die Linearkombinationen NiMsKCUidUciIiIqJiIiI0YlJSJ2R0YlRiUqJiIiJEYlJSJ3R0YlRiU= und NiMsKCUidUciIiIlInZHISIiJSJ3R0Yl. Sind die Vektoren linear unabhaengig?Loesungu:=array([[1],[I],[2]]); v:=array([[2+I],[1-I],[I]]); w:=array([[1+I], [1-2*I], [-2+I]]);evalm(u+2*v+3*w);evalm(u-v+w);Offensichtlich sind die drei Vektoren linear abhaengig.2. Loesen Sie die Aufgabe 15.16 im Buch mit Hilfe von Maple.LoesungWir geben zunaechst die Kraefte einF :=matrix(3,1,[-7,24,9]);
F1:=matrix(3,1,[1,2,0]);
F2:=matrix(3,1,[3,-4,1]);
F3:=matrix(3,1,[0,2,3]); Fuer das Kraeftegleichgewicht ermitteln wir die Koeffizienten NiM2JSZJJ2xhbWJkYUc2IjYjIiIiJkYlNiMiIiMmRiU2IyIiJA== durch Loesen des zugehoerigen linearen Gleichungssystemswith(linalg):
A:=concat(F1,F2,F3);
linsolve(A,F);3. Suchen Sie in Maple Kommandos, die Ihnen die Polynomdivision mit Rest der beiden Polynome
NiMvLUkicEc2IjYjSSJ4R0YmLCoqJEYoIiImIiIiKiYiIiVGLCokRigiIiRGLEYsKiYiIiNGLCokRihGMkYsISIiRixGLA== und NiMvLUkicUc2IjYjSSJ4R0YmLCgqJEYoIiIjIiIiRiwhIiIqJiIiJEYsRihGLEYsberechnen. LoesungZunaechst geben wir die Polynome einp:= x^5+4*x^3-2*x^2+1;
q:= x^2-1+3*x;Der Befehl quo liefert den Faktor bei Polynomdivision und der Befehl rem den Rest bei dieser Division. Es ergibt sich f:=quo(p,q,x);r:=rem(p,q,x);Wir sortieren die Terme und verifizieren das Ergebnis durchsort(collect(q*f+r,x));