M.2.F
Gegeben
Gegeben: Die Winkel \(\varphi\) und \(\alpha\) und die \((x,y)\)-Komponenten des roten Vektors \(\boldsymbol v\).
Gegeben:
Das grüne \((x,y)\)-Bezugssystem sowie das blaue \((\bar x,\bar y)\)-Bezugssystem, welches gegenüber dem grünen Bezugssystem gedreht ist um den Winkel \(\varphi.\)
Der rote Vektor \(\boldsymbol v\) über seine \((x,y)\)-Komponenten \((v_x, v_y).\)
Der blaue Vektor \(\boldsymbol v'\) , welcher gegenüber dem roten Vektor gedreht ist um den Winkel \(\alpha.\)
Berechnen Sie für die Beispiele unten:
Die \((\bar x,\bar y)\)-Komponenten des roten Vektors , und zwar gerundet auf \(0{,}01\):
\begin{align*} \begin{bmatrix} v_{\bar x}\\ v_{\bar y} \end{bmatrix} &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} \begin{bmatrix} \ldots \\ \ldots \end{bmatrix} \end{align*}Die \((x,y)\)-Komponenten des blauen Vektors , und zwar gerundet auf \(0{,}01\):
\begin{align*} \begin{bmatrix} v'_{x}\\ v'_{y} \end{bmatrix} &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} \begin{bmatrix} \ldots \\ \ldots \end{bmatrix} \end{align*}
a)
Sei:
Passive Transformation: Aktive Transformation:Lösung
b)
Sei:
Passive Transformation: Aktive Transformation: Egal, ob man das Bezugssystem nach rechts dreht um 90 Grad oder den Vektor nach links dreht um 90 Grad: Die transformierten Komponenten sind gleich, obwohl die Komponenten verschiedene Bedeutungen haben: Bei der passiven Transformation geht es um die Komponenten des roten Vektors bzgl. dem blauen System. Bei der aktiven Transformation geht es um die Komponenten des blauen Vektors bzgl. dem grünen System.Lösung
Source Code eines Programms dazu: Programm ausführen? Dazu: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code ins Eingabefeld hinter Play: Knopf SymPy
from sympy.physics.units import *
from sympy import *
deg = pi/180
# Rounding:
def iso_round(x, pv):
try:
x = float(x)
tmp = round(x, pv)
except TypeError:
from functools import partial
func = partial(round, ndigits = pv)
tmp = x.applyfunc(func)
return tmp
# ---
prec = 2
def print_angle(angle):
pprint("Angle / deg:")
tmp = angle
tmp /= deg
tmp = iso_round(tmp,prec)
pprint(tmp)
def get_R(angle, passive=True):
c, s = cos(angle), sin(angle)
R = Matrix([[c, s],[-s, c]])
if passive == True:
pprint("\nPassive Transformation")
print_angle(angle)
return R
else:
pprint("\nActive Transformation")
print_angle(angle)
return R.transpose()
pprint("\nv:")
v = Matrix([3, 4])
pprint(v)
phi = 100 * deg
R = get_R(phi, passive=True)
pprint("\n(vx\u0304, vy\u0304):")
tmp = R*v
tmp = iso_round(tmp,prec)
pprint(tmp)
alpha = 100 * deg
R = get_R(alpha, passive=False)
pprint("\n(v'x, v'y):")
tmp = R*v
tmp = iso_round(tmp,prec)
pprint(tmp)
[ ]: einfügen.▶ drücken.