Vektoren mit Schleife erststel < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 16:39 Do 23.10.2008 | Autor: | matter |
Aufgabe | Gegeben Sei folgende Matrix:
[mm] \pmat{ 5 & 10 & 0 \\ 10 & 5 & 0 \\ 0 & 0 & 20 }
[/mm]
Durch Muliplikation dieser Matrix mit einer genügend großen Anzahl an Vektoren der Länge 1 (Vektoren der Einheitskugel) ensteht ein neuer Körper.
Stellen Sie diesen Körper in einem räumlichen Koordinatensystem dar. |
Hallo, ich muss zunächst sagen, dass wir diese Aufgabe mit Maple bearbeiten sollen. Ich jedoch absoluter Neuling im Umgang mit diesem Programm bin. Demzufolge hapert es leider an vielen stellen. Ich versuche einmal zu beschreiben wie ich bisher vorgegangen bin.
Um eine Grundmenge an Vektoren der Einheitskugel zu erhalten habe ich
vor diese zu parametrisieren. So ähnlich wie Längen- und Breitenkreise der Erde.
Ich hab dazu den Winkel [mm] \alpha [/mm] = 0° ... 180° und [mm] \beta [/mm] = 0° ... 360°
Als Ausgangsvektor habe ich [mm] \vektor{0 \\ 0 \\ 1} [/mm] gewählt. Ich möchte diesen Vektor nun zunächst mit dem Winkel [mm] \alpha [/mm] um die X-Achse drehen
[mm] \pmat{ 1 & 0 & 0 \\ 0 & cos(\alpha) & -sin(\alpha) \\ 0 & sin(\alpha) & cos(\alpha) }
[/mm]
Und danach mit dem Winkel [mm] \beta [/mm] um die Y-Achse
[mm] \pmat{ cos(\alpha) & 0 & sin(\alpha) \\ 0 & 1 & 0 \\ -sin(\alpha) & 0 & cos(\alpha) }
[/mm]
Diese Drehung wollte ich mit einer Schleife realisieren. Diese soll zum Winkel [mm] \alpha [/mm] = 0° den Winkel [mm] \beta [/mm] z.B. in 10° Schritten drehen und jeweils als Vektor abspeichern. Danach soll der Vorgang mit [mm] \alpha [/mm] = 10° wiederholt werden usw bis [mm] \alpha [/mm] = 180°.
Die so entstandenen Winkel sollen nun mit der gegebenen Matrix [mm] \pmat{ 5 & 10 & 0 \\ 10 & 5 & 0 \\ 0 & 0 & 20 } [/mm] multipliziert werden.
Danach wollte ich die Vektoren halt räumlich darstellen. Am besten halt die Endpunkte der Vektoren (da sie ja alle bei 0,0,0 starten) als Punkt dargestellt.
So weit die Theorie. Zunächst schaffe ich es leider nicht die Schleifen zu verschachteln.
Mein Schleife zum drehen um [mm] \alpha [/mm] sieht so aus:
for i from 0 by 10 to 180
do
e := Vector([0, 0, 1]):
X := Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = cos((1/180)*i*Pi), (2, 3) = -sin((1/180)*i*Pi), (3, 1) = 0, (3, 2) = sin((1/180)*i*Pi), (3, 3) = cos((1/180)*i*Pi)}):
z[i] := Multiply(X, e);
print(z[i]) ;
end do:
Nun habe ich schon einiges versucht um die Schleife in so weit zu verschachteln, dass zu jedem Winkel i jeweils alle Winkel j = [mm] \alpha [/mm] = 0° ... 360° durchlaufen aber ich bekomme es einfach nicht hin. Also wenn zunächst jemand wüsste wie ich das hinbekomme wäre schonmal klasse. Und dann habe ich noch das Problem, dass ich bisher nicht weiß wie ich die Vektoren bzw. deren Endpunkte räumlich darstelle. Bisher habe ich dazu nur folgendes gefunden:
with(plottools); with(plots); l := point([(1/2)*sin((1/12)*Pi), -(1/2)*sqrt(3), (1/2)*cos((1/12)*Pi)], color = red), point([0, -(1/2)*sqrt(3), 1/2], color = red); display(l); [0, 0, 1], axes = boxed, view = [-1 .. 1, -1 .. 1, -1 .. 1], orientation = [125, 65]
Zum darstellen von den Punkten. Nur dazu müsste ich die Vektoren alle in Punkte umschreiben. Dies zu programmieren ist mir aber auch noch nicht gelungen. Nur schätze ich, dass es eine einfachere Variante gibt.
Wäre echt dankbar wenn mir jemand helfen könnt!
Ich habe diese Frage in keinem anderen Forum gestellt!
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:56 Do 23.10.2008 | Autor: | matter |
Ich denke die Schleife habe ich jetzt hinbekommen. Bin mir nur nicht ganz sicher ob es so stimmt. Aber bei den Stichproben die ich gemacht hab passt es:
with(LinearAlgebra);
with(plots);
for j from 0 by 10 to 360
do
Y[j] := Matrix(3, 3, {(1, 1) = cos((1/180)*j*Pi), (1, 2) = 0, (1, 3) = sin((1/180)*j*Pi), (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (3, 1) = -sin((1/180)*j*Pi), (3, 2) = 0, (3, 3) = cos((1/180)*j*Pi)});
for i from 0 by 10 to 180
do
e := Vector([0, 0, 1]);
X := Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = cos((1/180)*i*Pi), (2, 3) = -sin((1/180)*i*Pi), (3, 1) = 0, (3, 2) = sin((1/180)*i*Pi), (3, 3) = cos((1/180)*i*Pi)});
y[i] := Multiply(X, e);
z[i] := Multiply(Y[j], y[i]);
print((alpha = i, beta = j) = z[i]) ;
end do :
end do:
Das große Problem ist jetzt eigentlich nur noch diese Vektoren grafisch darzustellen. (das multiplizieren mit der gegeben Matrix werd ich dann nachträglich schon noch hinbekommen. So müsste das ganze ja jetzt eine Kugel ergeben)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:20 Fr 31.10.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|