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