Gesamtrotationsmatrix ausg. < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:38 Fr 04.04.2008 | Autor: | Hokaido |
Aufgabe | Wie lautet bitte der Code/Befehl beispielsweise beim Programm Octave um die Gesamtrotationsmatrize aus den drei Einzeldrehmatrizen in Abhängigkeit von alpha, beta und gamma zu berechnen und auszugeben. Oder mit welchem Programm kommt man wie am leichtesten zu einer Gesamtrotationsmatrix in Abhängigkeit von Unbekannten.
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Ich bräuchte die Gesamtrotationsmatrix in Abhängigkeit der Unbekannten alpha, beta und gama, bzw. hier ax, ay und az. Mit folgendem Code kann man beispielsweise die Funktion für die Rotationsmatrix für Octave erstellen:
function rotmatxyz (ax, ay, az)
mx = my = mz = eye(3,3);
mx(2,2) = mx(3,3) = cos(ax);
mx(2,3) = -sin(ax);
mx(3,2) = sin(ax);
my(1,1) = my(3,3) = cos(ay);
my(1,3) = sin(ay);
my(3,1) = -sin(ay);
mz(1,1) = mz(2,2) = cos(az);
mz(1,2) = -sin(az);
mz(2,1) = sin(az);
mx * (my * mz)
end
...und wenn man sie mit konkreten Werten startet dann bringt sie auch eine schöne Ergebnismatrix. Ich bräuchte aber eine Matrix in Abhängigkeit von den Unbekannten.
Die einzelnen Drehmatrizen, die bei Eulerwinkeln auf zwölf verschiedene Arten miteinander multipliziert werden stehen auch in der Wikipedia unter "Drehmatrix".
schonmal besten Dank
Hokaido
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 00:39 Sa 05.04.2008 | Autor: | rainerS |
Hallo!
Erstmal herzlich
> Wie lautet bitte der Code/Befehl beispielsweise beim
> Programm Octave um die Gesamtrotationsmatrize aus den drei
> Einzeldrehmatrizen in Abhängigkeit von alpha, beta und
> gamma zu berechnen und auszugeben. Oder mit welchem
> Programm kommt man wie am leichtesten zu einer
> Gesamtrotationsmatrix in Abhängigkeit von Unbekannten.
>
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>
> Ich bräuchte die Gesamtrotationsmatrix in Abhängigkeit der
> Unbekannten alpha, beta und gama, bzw. hier ax, ay und az.
> Mit folgendem Code kann man beispielsweise die Funktion für
> die Rotationsmatrix für Octave erstellen:
>
> function rotmatxyz (ax, ay, az)
> mx = my = mz = eye(3,3);
> mx(2,2) = mx(3,3) = cos(ax);
> mx(2,3) = -sin(ax);
> mx(3,2) = sin(ax);
> my(1,1) = my(3,3) = cos(ay);
> my(1,3) = sin(ay);
> my(3,1) = -sin(ay);
> mz(1,1) = mz(2,2) = cos(az);
> mz(1,2) = -sin(az);
> mz(2,1) = sin(az);
> mx * (my * mz)
> end
>
> ...und wenn man sie mit konkreten Werten startet dann
> bringt sie auch eine schöne Ergebnismatrix. Ich bräuchte
> aber eine Matrix in Abhängigkeit von den Unbekannten.
Mit octave kannst du nicht symbolisch rechnen, oder?
Du brauchst ein Computeralgebrasystem (CAS). Ich habe es gerade mit Maxima gerechnet:
rotmatxyz (ax, ay, az):= block(
[mx,my,mz],
mx : diag_matrix(1,1,1),
my : diag_matrix(1,1,1),
mz : diag_matrix(1,1,1),
mx[2,2] : mx[3,3] : cos(ax),
mx[2,3] : -sin(ax),
mx[3,2] : sin(ax),
my[1,1] : my[3,3] : cos(ay),
my[1,3] : sin(ay),
my[3,1] : -sin(ay),
mz[1,1] : mz[2,2] : cos(az),
mz[1,2] : -sin(az),
mz[2,1] : sin(az),
mx . my . mz
);
rotmatxyz(alpha,beta,gamma);
ergibt:
[mm]\begin{pmatrix}\cos \beta\,\cos \gamma&-\cos \beta\,\sin \gamma&\sin \beta\\
\cos \alpha\,\sin \gamma+\sin \alpha\,\sin \beta\,\cos \gamma&\cos \alpha\,\cos \gamma-\sin \alpha\,\sin \beta\,\sin \gamma
&-\sin \alpha\,\cos \beta\\ \sin \alpha\,\sin \gamma-\cos \alpha\,
\sin \beta\,\cos \gamma&\cos \alpha\,\sin \beta\,\sin \gamma+\sin
\alpha\,\cos \gamma&\cos \alpha\,\cos \beta\end{pmatrix}[/mm]
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Korrektur) richtig (detailiert geprüft) | Datum: | 10:50 Sa 05.04.2008 | Autor: | Hokaido |
Funktioniert wunderbar.
Besten Dank
Hokaido
|
|
|
|