Tags: Web-App

M.2.B

Bemerkung

Grundlagen und Videos: Vektor: Transformation

Gegeben

../../../_images/M.2.B.png

Gegeben:

  • Das grüne \((x,y)\)-Bezugssystem und das blaue \((\bar x, \bar y)\)-Bezugssystem.

  • Der Winkel \(\varphi=10^\circ\), um den das blaue Bezugssystem relativ zum grünen Bezugssystem gedreht ist.

  • Die Komponenten des roten Vektors \(\boldsymbol v\) im grünen Bezugssystem:

    \[\begin{split}\begin{bmatrix} v_x \\ v_y \end{bmatrix} = \begin{bmatrix} 3 \\ 4 \end{bmatrix}\end{split}\]

Gesucht sind die Komponenten des Vektors im blauen Bezugssystem:

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} = \begin{bmatrix} \ldots \\ \ldots \end{bmatrix}\end{split}\]

a) Kosinus und Sinus

Berechnen Sie Kosinus und Sinus des gegebenen Winkels \(\varphi=10^\circ\) , und zwar gerundet auf \(0{,}01\):

\[\begin{split}c_{10^\circ} &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} \ldots \\ s_{10^\circ} &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} \ldots\end{split}\]

Lösung

\[\begin{split}c_{10^\circ} &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} 0{,}98 \\ s_{10^\circ} &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} 0{,}17\end{split}\]

b) Drehmatrix

Passive Transformation:

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} &= \underbrace{ \begin{bmatrix} c_\varphi & \ldots \\ \ldots & \ldots \end{bmatrix} }_{R_\varphi} \begin{bmatrix} v_x \\ v_y \end{bmatrix}\end{split}\]

Berechnen Sie die vier Einträge der Drehmatrix \(R_\varphi,\) und zwar gerundet auf \(0{,}01\):

\[\begin{split}R_\varphi \stackrel{\scriptscriptstyle{0{,}01}}{\approx} \begin{bmatrix} \ldots & \ldots \\ \ldots & \ldots \end{bmatrix}\end{split}\]

Lösung

\[\begin{split}{R_\varphi} &= \begin{bmatrix} c_\varphi & s_\varphi \\ -s_\varphi & c_\varphi \end{bmatrix} \\ &= \begin{bmatrix} c_{10^\circ} & s_{10^\circ} \\ -s_{10^\circ} & c_{10^\circ} \end{bmatrix} \\ &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} \begin{bmatrix} 0{,}98 & 0{,}17 \\ -0{,}17 & 0{,}98 \end{bmatrix}\end{split}\]

c) Komponenten im gedrehten Bezugssystem

Berechnen Sie gerundet auf \(0{,}01\):

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} \stackrel{\scriptscriptstyle{0{,}01}}{\approx} \begin{bmatrix} \ldots \\ \ldots \end{bmatrix}\end{split}\]

Zeigen Sie an einer Skizze, dass das Ergebnis plausibel ist.

Lösung

\[\begin{split}\begin{bmatrix}v_{\bar x} \\ v_{\bar y} \end{bmatrix} &= \begin{bmatrix} c_{10^\circ} & s_{10^\circ} \\ -s_{10^\circ} & c_{10^\circ} \end{bmatrix} \begin{bmatrix} v_x \\ v_y \end{bmatrix} \\ &\stackrel{\scriptscriptstyle{0{,}01}}{\approx} \begin{bmatrix} 3{,}65 \\ 3{,}42 \end{bmatrix}\end{split}\]

Plausibilitätskontrolle:

  • Die beiden Bezugssysteme zeichnen.

  • Den Vektor zeichnen.

  • Die Komponenten ablesen.

e) Infinitesimale Drehung

../../../_images/M.2.B.png

Die Komponenten im gedrehten Bezugssystem sind (abhängig von \(\varphi\)):

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} &= \underbrace{ \begin{bmatrix} c_\varphi & s_\varphi \\ -s_\varphi & c_\varphi \end{bmatrix} }_{R_\varphi} \begin{bmatrix} 3 \\ 4 \end{bmatrix}\end{split}\]

Für betragsmäßig kleine Winkel \(\varphi\) gilt: \(c_\varphi\approx 1\) und \(s_\varphi\approx \varphi\). Falls das \((\bar x, \bar y)\)-Bezugssystem nur sehr wenig (infinitesimal) relativ zum \((x, y)\)-Bezugssystem gedreht ist, gilt daher näherungsweise:

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} &= \underbrace{ \begin{bmatrix} 1 & \varphi \\ -\varphi & 1 \end{bmatrix} }_{\tilde R_\varphi} \begin{bmatrix} 3 \\ 4 \end{bmatrix}\end{split}\]

Füllen Sie folgende Tabelle mit Werten gerundet auf Rundestellenwert \(0{,}0001\).

Werte gerundet auf Rundestellenwert 0,0001

\(\varphi\)

\(R_\varphi = \begin{bmatrix} c_\varphi & s_\varphi \\ -s_\varphi & c_\varphi \end{bmatrix}\)

\(\tilde R_\varphi=\begin{bmatrix} 1 & \varphi \\ -\varphi & 1 \end{bmatrix}\)

\(R_\varphi \begin{bmatrix} 3 \\ 4 \end{bmatrix}\)

\(\tilde R_\varphi \begin{bmatrix} 3 \\ 4 \end{bmatrix}\)

\(1^\circ\)

\(\begin{bmatrix}0{,}9998 & 0{,}0175 \\ -0{,}0175 & 0{,}9998\end{bmatrix}\)

\(\ldots\)

\(\begin{bmatrix}3{,}0694 \\ 3{,}947\end{bmatrix}\)

\(\ldots\)

\(3^\circ\)

\(\ldots\)

\(\ldots\)

\(\ldots\)

\(\ldots\)

\(-3^\circ\)

\(\ldots\)

\(\ldots\)

\(\ldots\)

\(\ldots\)

\(5^\circ\)

\(\ldots\)

\(\ldots\)

\(\ldots\)

\(\ldots\)

Lösung

Werte gerundet auf Rundestellenwert 0,0001

\(\varphi\)

\(R_\varphi = \begin{bmatrix} c_\varphi & s_\varphi \\ -s_\varphi & c_\varphi \end{bmatrix}\)

\(\tilde R_\varphi=\begin{bmatrix} 1 & \varphi \\ -\varphi & 1 \end{bmatrix}\)

\(R_\varphi \begin{bmatrix} 3 \\ 4 \end{bmatrix}\)

\(\tilde R_\varphi \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}3{,}0694 \\ 3{,}947\end{bmatrix}\)

\(\begin{bmatrix}3{,}0698 \\ 3{,}9476 \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}\)

\(-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}\)

\(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}3{,}3372 \\ 3{,}7233\end{bmatrix}\)

\(\begin{bmatrix}3{,}3491 \\ 3{,}7382 \end{bmatrix}\)

f) Web-App

Vector Transformation

Anleitung

\((v_{\bar x} , v_{\bar x})\) für einen gegebenen Winkel \(\varphi\) am Kreis ablesen:

  1. Ganzzahliges Vielfaches von \(360^\circ\) zu \(\varphi\) addieren, sodass \(\varphi\) zwischen \(-180^\circ \le \varphi \le 180^\circ\)

  2. Diesen Winkel \(\varphi\) einstellen, und zwar in \(^\circ\) (Grad).

  3. \((v_{\bar x} , v_{\bar x})\) am Kreis ablesen als die Koordinaten des Punkts auf dem Kreis.

Beispiele:

\(\varphi\)

Bezugssystem-Drehung

Einstellung \(\varphi\) in °

\(10^\circ\)

↺ 10 Grad

10

\(-10^\circ\)

↻ 10 Grad

-10

\(370^\circ\)

↺ 370 Grad

10

\(190^\circ\)

↺ 190 Grad

-170

g) Weitere Beispiele

../../../_images/M.2.B_1.png
Werte gerundet auf Rundestellenwert 0,01

\(\varphi\)

\(\begin{bmatrix} c_\varphi & s_\varphi \\ -s_\varphi & c_\varphi \end{bmatrix}\)

\(\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix}\)

\(10^\circ\)

\(\begin{bmatrix} 0{,}98 & 0{,}17 \\ -0{,}17 & 0{,}98 \end{bmatrix}\)

\(\begin{bmatrix} 3{,}65\\ 3{,}42 \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} -3{,}65 \\ -3{,}42 \end{bmatrix}\)

Negative Winkel

  • 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.

SymPy

Source Code eines Programms dazu:

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:
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

v = Matrix([3, 4])
p =  -4  *deg

lin = True
# lin = False

pprint("\nv:")
tmp = v
pprint(v)

pprint("\nφ / deg:")
tmp = p / deg
pprint(tmp)


if lin:
    pprint("\nInfinitesimal Rotation.")
    R = Matrix([[1, p],[-p, 1]])
else:
    pprint("\nFinite Rotation.")
    c, s = cos(p), sin(p)
    R = Matrix([[c, s],[-s, c]])

# pprint("\nR:")
# tmp = R
# tmp = iso_round(tmp,prec)
# pprint(tmp)


pprint("\n(vx̄, vȳ):")
vb = R*v
tmp = vb
tmp = iso_round(tmp,prec)
pprint(tmp)

Programm ausführen? Dazu:

  1. Copy: Source Code in die Zwischenablage kopieren.

  2. Paste: Source Code ins Eingabefeld hinter [ ]: einfügen.

  3. Play: Knopf ▶ drücken.