Ein erstes Maple-Worksheet mit einigen Beispielen linearer
Transcription
Ein erstes Maple-Worksheet mit einigen Beispielen linearer
Ein erstes Maple-Worksheet mit einigen Beispielen linearer Gleichungssysteme Die Maple-Kommandos erscheinen in Rot. Sie werden ausgefuehrt, indem man den Cursor in der Zeile platziert und dann Return drueckt. Wenn Sie Maple noch nicht kennen, klicken sie auf "Help" (oben rechts) und dann im Menu auf "New User's Tour" um mehr zu erfahren! Löse das lineare Gleichungssystem: x-y+z=0 x+2y=1 x+2z=0 > solve({x-y+z=0,x+2*z=0,x+2*y=1},{x,y,z}); 1 1 1 x= ,y= ,z= 2 4 4 Ein anderes Beispiel ist: > solve({x-y+z=0,x+2*y=1},{x,y,z}); x = 2 y 1, y = y, z = 3 y 1 Das Ergebnis ist so zu verstehen: Für beliebigen Wert von y wird mit diesen Werten von x und z das Tripel (x,y,z) eine Lösung des Gleichungssystems, also etwa x=-1, y=1, z=2 oder x=-3, y=2, z=5. Die Lösungsmenge ist eine Gerade im Raum R3 . Weitere Beispiele, in denen die Lösungsmengen etwas anders aussehen, sind: y Error, missing operator or `;` > solve({x-y+z=0},{x,y,z}); x = y z, y = y, z = z Bei der Gelegenheit schauen wir uns an, wie man in Maple Bilder erzeugt; wir laden zunächst das Paket "plots": > with(plots): > implicitplot3d(x-y+z=0,x=-5..10,y=-10..10,z=-20..20,axes=boxed, style=patchnogrid); 1 Die Lösungsmenge ist hier eine Ebene durch den Ursprung. Wir fügen noch zwei weitere Gleichungen hinzu und erhalten ein System, das nur die triviale Loesung x = 0, y = 0, z = 0 hat: x=0 y=0 z=0 > solve({x-y+z=0,x+2*y=0,x+2*z=0},{x,y,z}); x = 0, y = 0, z = 0 Das naechste Beispiel ist ein inhomogenes System, das genau eine Loesung besitzt (die Loesungsmenge besteht aus einem Punkt): > solve({x-y+z=0,x+2*y=1,x+2*z=0},{x,y,z}); 1 1 1 x= ,y= ,z= 2 4 4 Das naechste Gleichungssystem hat ueberhaupt keine Loesungen: > solve({x-y+z=0,x+2*y=1,2*x+y+z=0},{x,y,z}); Das folgende homogenen System von 3 Gleichungen in 3 Unbekannten hat als Loesunsgmenge eine 2 Gerade (durch den Ursprung) im Raum R3 . R3 > solve({x-y+z=0,x+2*y=0,2*x+y+z=0},{x,y,z}); x = 2 y, y = y, z = 3 y Wir zeichnen zunaechst diese Gerade: > g:=spacecurve([-2*z/3,z/3,z],z=-20..20,color=black,axes=boxed, thickness=2): > display(g); Jede der 3 Gleichungen ist die Gleichung einer Ebene durch den Ursprung. Das naechste Plot zeigt diese 3 Ebenen. Man sieht (hoffentlich), dass die 3 Ebenen sich ein einer gemeinsamen Geraden schneiden (der Loesungsmenge des Systems): > implicitplot3d({x-y+z=0,x+2*y=0,2*x+y+z=0},x=-5..10,y=-10..10,z= -20..20,axes=boxed); 3 Jetzt zeichnen wir zunaechst die erste der 3 Ebenen: > e1:=implicitplot3d(x-y+z=0,x=-5..10,y=-10..10,z=-20..20,axes=boxed, color=pink,style=patchnogrid): > display(e1); 4 Danach ein plot von der ersten und der zweiten der Ebenen; die beiden Ebenen schneiden sich in einer Geraden: > e2:=implicitplot3d(x+2*y=0,x=-5..10,y=-10..10,z=-20..20,axes=boxed, color=yellow,style=patchnogrid): > display(e1,e2); 5 Schliesslich kommt noch (in gruen) die dritte Ebene hinzu, die ebenfalls durch die Schnittgerade der rosa Ebene mit der gelben geht. > e3:=implicitplot3d(2*x+y+z=0,x=-5..10,y=-10..10,z=-20..20,axes= boxed,color=green,style=patchnogrid): > display(e1,e2,e3,g); 6 Mit Maple koennen wir auch Gleichungssysteme in mehr als 3 Variablen loesen (hier: 4 bzw. 2 Gleichungen in 5 Unbekannten): > solve({x-y+z+w1+w2=0,x+2*y=1,x+2*z=0,w1+2*w2+z=0},{x,y,z,w1,w2}); 1 1 w1 = 5 z 1, w2 = 3 z , x = 2 z, y = z ,z=z 2 2 > solve({x-y+z+w1+w2=0,x+2*y=1},{x,y,z,w1,w2}); w1 = 3 y 1 z w2, w2 = w2, x = 2 y 1, y = y, z = z Wir können auch Gleichungssysteme mit unbekannten Koeffizienten a,b,c in den Variablen x,y,z lösen: > solve({x-y+z=a,x+2*y=b,x+2*z=c},{x,y,z}); 1 1 1 1 1 x= b a c, y = b a c, z = 2 2 4 2 4 1 b 4 1 a 2 3 c 4 Das funktioniert aber nicht immer: > solve({x-y+z=a,x+2*y=b,2*x+y+z=c},{x,y,z}); Warum hat das hier nicht geklappt? Das sehen wir später. Vielleicht sehen Sie es ja jetzt schon! 7 In der Notation einfacher ist Matrixschreibweise, dafür müssen wir zuerst das Paket "LinearAlgebra" laden: > with(LinearAlgebra): > M := <<1,1,1,4>|<1,1,-2,1>|<3,1,1,8>|<-1,1,-1,-1>|<0,1,1,0>>; 1 1 3 1 0 M 1 1 1 1 1 1 2 1 1 1 4 1 8 1 0 Wir wenden hierauf das Kommando "LinearSolve" an, es löst das Gleichungssystem x + y +3z-w=0 x + y + z +w=1 x -2y+ z-w= 1 4x+ y+8z-w=0 > LinearSolve(M); 25 6 4 3 5 2 2 Alternativ können wir die auf der linken Seite des Gleichungssystems auftretenden Koeffizienten in einer Matrix M1 zusammenfassen und anschließend die rechte Seite als zweites Argument in das Kommando "LinearSolve" eingeben: > M1 := <<1,1,1,4>|<1,1,-2,1>|<3,1,1,8>|<-1,1,-1,-1>>; 1 1 3 1 M1 1 1 1 1 1 2 1 1 4 1 8 1 > LinearSolve(M1, <0,1,1,0>); 8 25 6 4 3 5 2 2 Mit dem naechsten Kommando koennen wir aus einer Matrix und einem Vektor (mit gleicher Zeilenzahl) ein Gleichungssystem erzeugen: > GenerateEquations(M1,[x,y,z,w],<0,1,1,0>); x y 3 z w = 0, x y z w = 1, x 2 y z w = 1, 4 x y 8 z w = 0 Natuerlich liefert uns "solve" die gleiche Loesungsmenge: > solve({x+y+3*z-w = 0, x+y+z+w = 1, x-2*y+z-w = 1, 4*x+y+8*z-w = 0}, {x,y,z,w}); 25 4 5 w = 2, x = ,y= ,z= 6 3 2 Damit schauen wir uns ein größeres Beispiel an: > M:=RandomMatrix(9,10,generator=1..100); 70 79 95 27 7 50 48 37 57 51 21 61 78 14 13 21 79 27 72 86 84 89 26 92 46 96 19 99 73 82 35 81 M 2 7 11 59 30 92 92 44 74 62 53 35 3 97 10 96 27 5 39 79 13 28 60 81 13 62 41 38 1 92 3 69 87 40 72 10 18 87 100 80 53 87 98 46 13 59 36 24 62 9 23 77 6 6 50 3 4 65 > v:=LinearSolve(M); 9 54637872441203362 12066476436030579 26371555033122787 12066476436030579 10145923191623309 4022158812010193 10001963301980704 4022158812010193 v 2762164461145076 4022158812010193 8336801382499373 12066476436030579 37683837055196056 12066476436030579 7274450485356208 12066476436030579 11744849437408085 12066476436030579 Um die Einträge des Lösungsvektors in Dezimalbruchschreibweise zu sehen, multiplizieren wir ihn mit 1.0: > 1.0*v; 4.528071864 2.185522441 2.522506859 2.486715162 0.6867367974 0.6909060343 3.123019156 0.6028645167 0.9733454086 Wenn Sie wollen können Sie auch genauer rechnen: > Digits:=50; Digits 50 > 1.0*v; 10 4.5280718634691326297707094277803172164092979031646 2.1855224408657649252198619032178004613692101755903 2.5225068590846076934033679309083282091647681589764 2.4867151620455102289365470520452561821665093177666 0.68673679738781932806093931966530088506973940642065 0.69090603430887483849530213563279958623328509696951 3.1230191560041395001675491125306977324865778898404 0.60286451673950569391744036182409021787905981414602 0.97334540863461071037302792600319492133890313946993 11