Sources/Lexikon/Kugelkoordinaten: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 26: | Zeile 26: | ||
</math> | </math> | ||
<!--------------------------------------------------------------------------------> | |||
Oft kann man räumliche Polarkoordinaten besser interpretieren als Euler-Winkel. Wir schreiben deshalb hier eine Transformationsvorschrift an, mit der Euler-Winkel in Polarkoordinaten übersetzten kann. | {{MyCodeBlock|title=Title | ||
|text=Oft kann man räumliche Polarkoordinaten besser interpretieren als Euler-Winkel. Wir schreiben deshalb hier eine Transformationsvorschrift an, mit der Euler-Winkel in Polarkoordinaten übersetzten kann. | |||
Dabei geben wir von einem Punkt ''P'' in Euler-Koordinaten mit | Dabei geben wir von einem Punkt ''P'' in Euler-Koordinaten mit | ||
Zeile 40: | Zeile 41: | ||
::<math></math> | ::<math></math> | ||
|code= | |||
<syntaxhighlight lang="lisp" line start=1> | |||
/* Euler-Winkel */ | |||
D[1](φ) := matrix([1,0,0],[0,cos(φ),sin(φ)],[0,-sin(φ),cos(φ)]); | |||
D[2](φ) := matrix([cos(φ),0,-sin(φ)],[0,1,0],[sin(φ),0,cos(φ)]); | |||
D[3](φ) := matrix([cos(φ),sin(φ),0],[-sin(φ),cos(φ),0],[0,0,1]); | |||
/* Kugelkoordinanten */ | |||
D[12](θ,φ):= matrix([ cos(θ)*cos(φ), cos(θ)*sin(φ), -sin(θ)], | |||
[ -sin(φ), cos(φ), 0 ], | |||
[ sin(θ)*cos(φ), sin(θ)*sin(φ), cos(θ)]); | |||
/* Zusammenhang Euler-Winkel - Kugelkoordinaten*/ | |||
/* Euler -> Kugel */ | |||
equ: matrix([a[x],a[y],a[z]]).D[3](θ[3]).D[12](θ[1],θ[2]) - matrix([a[x],a[y],a[z]]).D[3](φ[3]).D[1](φ[1]).D[2](φ[2]); | |||
equ: flatten(makelist(coeff(args(equ),[a[x],a[y],a[z]][i]),i,1,3)); | |||
equ: makelist(equ[i]=0,i,1,9); | |||
repl: solve([equ[5],equ[6],equ[7],equ[8],equ[9]],[cos(θ[3]),sin(θ[2]),cos(θ[2]),sin(θ[1]),cos(θ[1])])[1]; | |||
equ: transpose(subst(repl,equ)); | |||
repl: append(trigsimp(repl), subst([sin(φ[1])^2=1-cos(φ[1])^2],trigsimp(solve(equ[1],sin(θ[3])^2)))); | |||
equ: trigsimp(transpose(subst(repl,equ))); | |||
</syntaxhighlight> | |||
}} | |||
'''Links''' | '''Links''' |
Version vom 4. April 2022, 13:06 Uhr
Definition
In Kugelkoordinaten oder räumlichen Polarkoordinaten wird ein Punkt P im dreidimensionalen Raum durch seinen Abstand vom Ursprung und zwei Winkel angegeben.
So ist der Vektor vom Ursprung zum Punkt P
mit
- .
Die Kugelkoordinaten kann man - ähnlich wie bei den Euler-Winkeln -zur Definition eines neuen, lokalen Koordinatensystems nutzen. Neben dem Flächen-Normalenvektor spannen dabei die Tangentialvektoren zu φ1 und φ2 eine neue Basis auf.
Die Koordinatentransformation erfolgt über
mit der Transformationsmatrix
Title
Oft kann man räumliche Polarkoordinaten besser interpretieren als Euler-Winkel. Wir schreiben deshalb hier eine Transformationsvorschrift an, mit der Euler-Winkel in Polarkoordinaten übersetzten kann.
Dabei geben wir von einem Punkt P in Euler-Koordinaten mit
/* Euler-Winkel */
D[1](φ) := matrix([1,0,0],[0,cos(φ),sin(φ)],[0,-sin(φ),cos(φ)]);
D[2](φ) := matrix([cos(φ),0,-sin(φ)],[0,1,0],[sin(φ),0,cos(φ)]);
D[3](φ) := matrix([cos(φ),sin(φ),0],[-sin(φ),cos(φ),0],[0,0,1]);
/* Kugelkoordinanten */
D[12](θ,φ):= matrix([ cos(θ)*cos(φ), cos(θ)*sin(φ), -sin(θ)],
[ -sin(φ), cos(φ), 0 ],
[ sin(θ)*cos(φ), sin(θ)*sin(φ), cos(θ)]);
/* Zusammenhang Euler-Winkel - Kugelkoordinaten*/
/* Euler -> Kugel */
equ: matrix([a[x],a[y],a[z]]).D[3](θ[3]).D[12](θ[1],θ[2]) - matrix([a[x],a[y],a[z]]).D[3](φ[3]).D[1](φ[1]).D[2](φ[2]);
equ: flatten(makelist(coeff(args(equ),[a[x],a[y],a[z]][i]),i,1,3));
equ: makelist(equ[i]=0,i,1,9);
repl: solve([equ[5],equ[6],equ[7],equ[8],equ[9]],[cos(θ[3]),sin(θ[2]),cos(θ[2]),sin(θ[1]),cos(θ[1])])[1];
equ: transpose(subst(repl,equ));
repl: append(trigsimp(repl), subst([sin(φ[1])^2=1-cos(φ[1])^2],trigsimp(solve(equ[1],sin(θ[3])^2))));
equ: trigsimp(transpose(subst(repl,equ)));
Links
- Kugelkoordinaten auf Wikipedia
- Sources/Lexikon/Eulersche Winkel
- Quaternionen für Drehungen
- Geographische Koordinaten
Literature
- ...