M.2.G
Bemerkung
Grundlagen und Videos: A.0.7 Vektor-Komponenten
Gegeben:
Das grüne \((x,y)\)-Bezugssystem.
Die Komponenten des roten Vektors \(\boldsymbol v\) im grünen \((x,y)\)-Bezugssystem:
\[\begin{split}\begin{bmatrix} v_x \\ v_y \end{bmatrix} = \begin{bmatrix} 3 \\ 4 \end{bmatrix}\end{split}\]Der Winkel \(\alpha = 10^\circ\), um den der rote Vektor \(\boldsymbol v'\) relativ zum roten Vektor \(\boldsymbol v\) gedreht ist.
Gesucht:
Die Komponenten des gedrehten Vektors \(\boldsymbol v'\) im grünen \((x, y)\)-Bezugssystem:
a) Drehmatrix
Aktive Transformation:
Berechnen Sie die vier Einträge der Drehmatrix - und zwar gerundet auf \(0{,}01\):
Lösung
b) Komponenten des gedrehten Vektors
Berechnen Sie gerundet auf \(0{,}01\):
Zeigen Sie an einer Skizze, dass das Ergebnis plausibel ist.
Plausibilitätskontrolle: Das Bezugssystem zeichnen. Die beiden Vektoren zeichnen. Die Komponenten ablesen. Die Komponenten des gedrehten Vektors sind (abhängig von \(\alpha\)): Für betragsmäßig kleine Winkel \(\alpha\) gilt: \(c_\alpha\approx 1\) und \(s_\alpha\approx \alpha\). Falls der Vektor \(\boldsymbol v'\) nur sehr wenig (infinitesimal) relativ zum Vektor \(\boldsymbol v\) gedreht ist, gilt daher näherungsweise: Füllen Sie folgende Tabelle mit Werten gerundet auf Rundestellenwert \(0{,}0001\). \(\alpha\) \(R_\alpha=\begin{bmatrix} c_\alpha & -s_\alpha \\ s_\alpha & c_\alpha \end{bmatrix}\) \(\tilde R_\alpha=\begin{bmatrix} 1 & -\alpha \\ \alpha & 1 \end{bmatrix}\) \(R_\alpha \begin{bmatrix} 3 \\ 4 \end{bmatrix}\) \(\tilde R_\alpha \begin{bmatrix} 3 \\ 4 \end{bmatrix}\) \(1^\circ\) \(\begin{bmatrix}0{,}9998 & -0{,}0175\\0{,}0175 & 0{,}9998\end{bmatrix}\) \(\ldots\) \(\begin{bmatrix}2{,}9297\\4{,}0517\end{bmatrix}\) \(\ldots\) \(3^\circ\) \(\ldots\) \(\ldots\) \(\ldots\) \(\ldots\) \(-3^\circ\) \(\ldots\) \(\ldots\) \(\ldots\) \(\ldots\) \(5^\circ\) \(\ldots\) \(\ldots\) \(\ldots\) \(\ldots\) \(\alpha\) \(R_\alpha=\begin{bmatrix} c_\alpha & -s_\alpha \\ s_\alpha & c_\alpha \end{bmatrix}\) \(\tilde R_\alpha=\begin{bmatrix} 1 & -\alpha \\ \alpha & 1 \end{bmatrix}\) \(R_\alpha \begin{bmatrix} 3 \\ 4 \end{bmatrix}\) \(\tilde R_\alpha \begin{bmatrix} 3 \\ 4 \end{bmatrix}\) \(1^\circ\) \(\begin{bmatrix}0{,}9998 & -0{,}0175\\0{,}0175 & 0{,}9998\end{bmatrix}\) \(\begin{bmatrix}1{,}0 & -0{,}0175\\0{,}0175 & 1{,}0\end{bmatrix}\) \(\begin{bmatrix}2{,}9297\\4{,}0517\end{bmatrix}\) \(\begin{bmatrix}2{,}9302\\4{,}0524\end{bmatrix}\) \(3^\circ\) \(\begin{bmatrix}0{,}9986 & -0{,}0523\\0{,}0523 & 0{,}9986\end{bmatrix}\) \(\begin{bmatrix}1{,}0 & -0{,}0524\\0{,}0524 & 1{,}0\end{bmatrix}\) \(\begin{bmatrix}2{,}7865\\4{,}1515\end{bmatrix}\) \(\begin{bmatrix}2{,}7906\\4{,}1571\end{bmatrix}\) \(-3^\circ\) \(\begin{bmatrix}0{,}9986 & 0{,}0523\\-0{,}0523 & 0{,}9986\end{bmatrix}\) \(\begin{bmatrix}1{,}0 & 0{,}0524\\-0{,}0524 & 1{,}0\end{bmatrix}\) \(\begin{bmatrix}3{,}2052\\3{,}8375\end{bmatrix}\) \(\begin{bmatrix}3{,}2094\\3{,}8429\end{bmatrix}\) \(5^\circ\) \(\begin{bmatrix}0{,}9962 & -0{,}0872\\0{,}0872 & 0{,}9962\end{bmatrix}\) \(\begin{bmatrix}1{,}0 & -0{,}0873\\0{,}0873 & 1{,}0\end{bmatrix}\) \(\begin{bmatrix}2{,}64\\4{,}2462\end{bmatrix}\) \(\begin{bmatrix}2{,}6509\\4{,}2618\end{bmatrix}\) \((v'_x, v'_y)\) für einen gegebenen Winkel \(\alpha\) am Kreis ablesen: Den gegebenen Winkel \(\varphi = - \alpha\) am Schieberegler einstellen. Falls nötig: Ganzzahliges Vielfaches von \(360^\circ\) addieren, so dass der Winkel einstellbar ist. \((v_{\bar x} , v_{\bar x})\) am Kreis ablesen als die Koordinaten des Punkts auf dem Kreis. Beispiele: \(\alpha\) Vektor-Drehung \(\varphi\) in ° \(10^\circ\) ↺ 10° -10 \(-10^\circ\) ↻ 10° 10 \(370^\circ\) ↺ 370° -10 \(190^\circ\) ↺ 190° 170 \(\alpha\) \(\begin{bmatrix} c_\alpha & -s_\alpha \\ s_\alpha & c_\alpha \end{bmatrix}\) \(\begin{bmatrix} v'_x \\ v'_y \end{bmatrix}\) \(10^\circ\) \(\begin{bmatrix} 0{,}98 & -0{,}17 \\ 0{,}17 & 0{,}98 \end{bmatrix}\) \(\begin{bmatrix} 2{,}26 \\ 4{,}46 \end{bmatrix}\) \(90^\circ\) \(\begin{bmatrix} 0{,}0 & -1{,}0 \\ 1{,}0 & 0{,}0 \end{bmatrix}\) \(\begin{bmatrix} -4{,}0 \\ 3{,}0 \end{bmatrix}\) \(180^\circ\) \(\begin{bmatrix} -1{,}0 & 0{,}0 \\ 0{,}0 & -1{,}0 \end{bmatrix}\) \(\begin{bmatrix} -3{,}0 \\ -4{,}0 \end{bmatrix}\) \(-170^\circ\) \(\begin{bmatrix} -0{,}98 & 0{,}17 \\ -0{,}17 & -0{,}98 \end{bmatrix}\) \(\begin{bmatrix} -2{,}26 \\ -4{,}46 \end{bmatrix}\) Anstatt \(5\,\mathrm{m}\) (Meter) nach hinten zu gehen, kann man gleichbedeutend \(-5\,\mathrm{m}\) nach vorne gehen. Anstatt \(-10\,\mathrm{m}\) (Meter) nach rechts abzumessen, kann man gleichbedeutend \(+10\,\mathrm{m}\) nach links abmessen. Anstatt \(-170^\circ\) entgegen dem Uhrzeigersinn abzumessen, kann man gleichbedeutend \(+ 170^\circ\) im Uhrzeigersinn abmessen.
Nachfolgend ein Programm, dass Sie ausführen können: Auf dem PC z.B. mit Anaconda. Im Browser (online) in drei Schritten: Copy: Source Code in die Zwischenablage kopieren. Paste: Source Code als Python-Notebook einfügen z.B. auf: JupyterLab oder Play: Ausführen. Statt SymPy lieber anderes CAS (Computeralgebrasystem) verwenden? Eine Auswahl verschiedener CAS gibt es hier.Lösung
c) Infinitesimale Drehung
Lösung
d) Web-App
Anleitung
e) Weitere Beispiele
Negative Winkel
f) Quiz
Programm
SymPy
# -*- coding: utf-8 -*-
from sympy.physics.units import *
from sympy import *
# Units:
(mm, cm) = ( m/1000, m/100 )
Newton = kg*m/s**2
kN = 10**3*Newton
Pa = Newton/m**2
MPa = 10**6*Pa
GPa = 10**9*Pa
deg = pi/180
half = S(1)/2
# Rounding:
import decimal
from decimal import Decimal as DX
from copy import deepcopy
def iso_round(obj, pv,
rounding=decimal.ROUND_HALF_EVEN):
import sympy
"""
Rounding acc. to DIN EN ISO 80000-1:2013-08
place value = Rundestellenwert
"""
assert pv in set([
# place value # round to:
"1", # round to integer
"0.1", # 1st digit after decimal
"0.01", # 2nd
"0.001", # 3rd
"0.0001", # 4th
"0.00001", # 5th
"0.000001", # 6th
"0.0000001", # 7th
"0.00000001", # 8th
"0.000000001", # 9th
"0.0000000001", # 10th
])
objc = deepcopy(obj)
try:
tmp = DX(str(float(objc)))
objc = tmp.quantize(DX(pv), rounding=rounding)
except:
for i in range(len(objc)):
tmp = DX(str(float(objc[i])))
objc[i] = tmp.quantize(DX(pv), rounding=rounding)
return objc
# User Input:
prec = "0.1"
v = Matrix([3, 4])
a = 10 *deg
lin = True
lin = False
# End of User Input.
pprint("\nv:")
pprint(v)
pprint("\nφ / deg:")
tmp = a / deg
pprint(tmp)
if lin:
pprint("\nInfinitesimal Rotation.")
R = Matrix([[1, -a],[a, 1]])
else:
pprint("\nFinite Rotation.")
c, s = cos(a), sin(a)
R = Matrix([[c, -s],[s, c]])
# pprint("\nR:")
# tmp = R
# tmp = iso_round(tmp,prec)
# pprint(tmp)
pprint("\n(v'x, v'y):")
vp = R*v
tmp = vp
tmp = iso_round(tmp,prec)
pprint(tmp)
v:
⎡3⎤
⎢ ⎥
⎣4⎦
φ / deg:
10
Finite Rotation.
(v'x, v'y):
⎡2.3⎤
⎢ ⎥
⎣4.5⎦