Vektor-Komponenten

Videos

Symbole

Winkel

zählt pos.

zeigt Winkelpos. von

relativ zu

\(\varphi\)

um \(z=\bar z\)

\((\bar x, \bar y)\)

\((x, y)\)

\(\alpha\)

um \(z=\bar z\)

\(\boldsymbol v'\)

\(\boldsymbol v\)

Vektor

\((x,y)\)-Komp.

\((\bar x, \bar y)\)-Komp.

\(\boldsymbol v\)

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

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

\(\boldsymbol v'\)

\(\begin{bmatrix} v'_{x} \\ v'_{y} \end{bmatrix}\)

nicht definiert

Passive und aktive Transformation

../../../_images/trafo_vector.png

Passive Transformation (links) und aktive Transformation (rechts)

Für einen Vektor gegeben durch seine \((x,y)\)-Komponenten sind folgende Transformationen definiert:

Passive Transformation

1 Vektor & 2 Bezugssysteme: Die \((\bar x, \bar y)\)-Komponenten desselben Vektors werden berechnet. Diese beziehen sich auf ein zweites Bezugssystem. Dieses zweite Bezugssystem ist das \((\bar x, \bar y)\)-System, welches relativ zum gegebenen \((x, y)\)-System gedreht ist.

\[\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} v_x \\ v_y \end{bmatrix}\end{split}\]

Beispiel 1

Sei wie üblich \(x\) nach rechts und \(y\) nach oben, so dass die pos. Zählrichtung für \(\varphi\) entgegen dem Uhrzeigersinn ist.

  • \((v_x, v_y)=(3, 0)\): Der rote Vektor zeigt nach rechts und hat Länge 3.

  • \(\varphi=90^\circ\): Das blaue System ist relativ zum grünen um \(90^\circ\) entgegen dem Uhrzeigersinn gedreht.

  • Die blaue \(\bar x\)-Achse liegt auf der grünen \(y\)-Achse und zeigt nach oben.

  • Die blaue \(\bar y\)-Achse zeigt nach links.

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} &= \begin{bmatrix} c_{90^\circ} & s_{90^\circ} \\ -s_{90^\circ} & c_{90^\circ} \end{bmatrix} \begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} \begin{bmatrix} 3 \\ 0 \end{bmatrix} \\ &= \begin{bmatrix} 0 \\ -3 \end{bmatrix}\end{split}\]

Beispiel 2

Sei wie üblich \(x\) nach rechts und \(y\) nach oben.

  • \((v_x, v_y)=(0, 4)\)

  • \(\varphi=180^\circ\)

  • Die blaue \(\bar x\)-Achse zeigt nach links.

  • Die blaue \(\bar y\)-Achse zeigt nach unten.

\[\begin{split}\begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} &= \begin{bmatrix} c_{180^\circ} & s_{180^\circ} \\ -s_{180^\circ} & c_{180^\circ} \end{bmatrix} \begin{bmatrix} 0 \\ 4 \end{bmatrix} \\ &= \begin{bmatrix} -1 & 0 \\ 0 & -1 \end{bmatrix} \begin{bmatrix} 0 \\ 4 \end{bmatrix} \\ &= \begin{bmatrix} 0 \\ -4 \end{bmatrix}\end{split}\]

Beispiel 3

  • \((v_x, v_y)=(3, 4)\)

  • \(\varphi=10^\circ\)

\[\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} 3 \\ 4 \end{bmatrix} \\ &\stackrel{0{,}01}{\approx} \begin{bmatrix} 3{,}65 \\ 3{,}42 \end{bmatrix}\end{split}\]

Aktive Transformation

2 Vektoren & 1 Bezugssystem: Berechnet werden die \((x, y)\)-Komponenten eines zweiten Vektors, der relativ zum ersten Vektor gedreht ist.

\[\begin{split}\begin{bmatrix} v'_{x} \\ v'_{y} \end{bmatrix} = \begin{bmatrix} c_\alpha & -s_\alpha \\ s_\alpha & c_\alpha \end{bmatrix} \begin{bmatrix} v_x \\ v_y \end{bmatrix}\end{split}\]

Beispiel 1

Sei wie üblich \(x\) nach rechts und \(y\) nach oben, so dass die pos. Zählrichtung für \(\alpha\) entgegen dem Uhrzeigersinn ist.

  • \((v_x, v_y)=(0, 4)\)

  • \(\alpha=90^\circ\)

  • Der rote Vektor \(\boldsymbol v\) zeigt nach oben.

  • Der blaue Vektor \(\boldsymbol v'\) ist um \(90^\circ\) entgegen dem Uhrzeigersinn relativ zum roten Vektor gedreht und zeigt darum nach links.

\[\begin{split}\begin{bmatrix} v'_{x} \\ v'_{y} \end{bmatrix} &= \begin{bmatrix} c_{90^\circ} & -s_{90^\circ} \\ s_{90^\circ} & c_{90^\circ} \end{bmatrix} \begin{bmatrix} 0 \\ 4 \end{bmatrix} \\ &= \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 0 \\ 4 \end{bmatrix} \\ &= \begin{bmatrix} -4 \\ 0 \end{bmatrix}\end{split}\]

Beispiel 2

Sei \(x\) und \(y\) wie üblich.

  • \((v_x, v_y)=(0, 4)\)

  • \(\alpha=-90^\circ\)

  • Der rote Vektor \(\boldsymbol v\) zeigt nach oben.

  • Der blaue Vektor ist um \(\alpha=-90^\circ\) entgegen dem Uhrzeigersinn relativ zum roten Vektor gedreht - also um \(90^\circ\) im Uhrzeigersinn. Er zeigt darum nach rechts.

\[\begin{split}\begin{bmatrix} v'_{x} \\ v'_{y} \end{bmatrix} &= \begin{bmatrix} c_{-90^\circ} & -s_{-90^\circ} \\ s_{-90^\circ} & c_{-90^\circ} \end{bmatrix} \begin{bmatrix} 0 \\ 4 \end{bmatrix} \\ &= \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} \begin{bmatrix} 0 \\ 4 \end{bmatrix} \\ &= \begin{bmatrix} 4 \\ 0 \end{bmatrix}\end{split}\]

Beispiel 3

Sei \(x\) und \(y\) wie üblich.

  • \((v_x, v_y)=(3, 4)\)

  • \(-\alpha=10^\circ\) bzw. gleichbedeutend \(\alpha=-10^\circ\)

  • Der blaue Vektor ist um \(10^\circ\) im Uhrzeigersinn relativ zum roten Vektor gedreht.

\[\begin{split}\begin{bmatrix} v'_{x} \\ v'_{y} \end{bmatrix} &= \begin{bmatrix} c_{-10^\circ} & -s_{-10^\circ} \\ s_{-10^\circ} & c_{-10^\circ} \end{bmatrix} \begin{bmatrix} 3 \\ 4 \end{bmatrix} \\ &\stackrel{0{,}01}{\approx} \begin{bmatrix} 3{,}65 \\ 3{,}42 \end{bmatrix}\end{split}\]

Zusammenhang zwischen Aktiver und Passiver Transformation

Passive Transformation mit Winkel \(\varphi\) und aktive Transformation mit Winkel \(\alpha=-\varphi\) führen zu denselben transformierten Komponenten. Mit anderen Worten: Drehung des Bezugssystems nach links ergibt zahlenmäßig dieselben transformierten Komponenten wie Drehung des Vektors nach rechts.

Nur wird im einen Fall das Bezugssystem gedreht - und im anderen Fall der Vektor. Und darum unterscheidet man die Transformationen namentlich als Passive und Aktive Transformation. Und darum werden auch die transformierten Komponenten unterschiedlich genannt.

Vektor-Komponente

Eine Vektor-Komponente ist der Anteil eines Vektors in einer bestimmten Richtung. Wird diese Richtung mit dem Einheitsvektor \(\boldsymbol e\) beschrieben, dann berechnet man die skalarwertige Vektor-Komponente \(v_e\) in Richtung \(\boldsymbol e\) (vgl. M.2.F) als:

\[v_e = \boldsymbol v \cdot \boldsymbol e\]

Vektorwertige Vektor-Komponente

Die vektorwertige Vektor-Komponente \(\boldsymbol v_e\) in Richtung \(\boldsymbol e\) ist gleich der skalarwertigen Komponente multipliziert mit dem Richtungsvektor:

\[\boldsymbol v_e = v_e \boldsymbol e\]

Die skalarwertige Vektor-Komponente \(v_e\) ist (weil sie eine Zahl ist) unabhängig von dem zu ihrer Berechnung verwendeten Bezugssystem:

\[\begin{split}v_e = \begin{bmatrix} e_x & e_y \end{bmatrix} \begin{bmatrix} v_x \\ v_y \end{bmatrix} = \begin{bmatrix} e_{\bar x} & e_{\bar y} \end{bmatrix} \begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix}\end{split}\]

mit \((e_x, e_y)\) als \((x,y)\)-Komponenten von \(\boldsymbol e\) und mit \((e_{\bar x}, e_{\bar y})\) als \((\bar x,\bar y)\)-Komponenten von \(\boldsymbol e\).

Zusammenhang zur Passiven Transformation

Zeigt der Einheitsvektor \(\boldsymbol e\) z.B. in Richtung \(\bar x\) und ist \(\bar x\) wie oben um \(\varphi\) relativ zu \(x\) gedreht: Dann gilt:

\[\begin{split}v_e &= \begin{bmatrix} c_\varphi & s_\varphi \end{bmatrix} \begin{bmatrix} v_x \\ v_y \end{bmatrix} \\ &= \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} v_{\bar x} \\ v_{\bar y} \end{bmatrix} \\ &= v_{\bar x}\end{split}\]
  • \(v_{\bar x}\) ist die skalarwertige Vektor-Komponente in Richtung \(\bar x\).

  • \(v_{\bar y}\) ist die skalarwertige Vektor-Komponente in Richtung \(\bar y\).

  • \(v_{e}\) ist die skalarwertige Vektor-Komponente in Richtung des Vektors \(\boldsymbol e\).

Web-App 2

Vector Transformation

3D: Beispiele

Es geht um:

  • zwei Bezugssysteme: Das grüne \((x,y,z)\)-System und das blaue \((\bar x, \bar y,\bar z)\)-System.

  • die Drehung des \((\bar x, \bar y, \bar z)\)-Systems relativ zum \((x, y, z)\)-System um \(z = \bar z\) oder \(x=\bar x\) oder \(y=\bar y\).

  • die Umrechnung von Vektor- und Tensorkomponenten unter diesem Wechsel des Bezugssystems.

  • die Passive Transformation in 3D für den Spezialfall, dass um eine der 3 Achsen des Bezugssystems gedreht wird 1.

Drehachse z = z̄

../../../_images/trafo_vector_3D_z.png

Drehachse x = x̄

../../../_images/trafo_vector_3D_x.png

Details

Zyklisches Vertauschen \((x,y,z)\mapsto(y, z, x)\) in (z) liefert:

\[\begin{split}\begin{bmatrix} v_{\bar y} \\ v_{\bar z} \\ v_{\bar x} \\ \end{bmatrix} &= \begin{bmatrix} c_\varphi & s_\varphi & 0 \\ -s_\varphi & c_\varphi& 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} v_y \\ v_z \\ v_x \\ \end{bmatrix} \\ \leadsto \begin{bmatrix} v_{\bar x} \\ v_{\bar y} \\ v_{\bar z} \\ \end{bmatrix} &= \begin{bmatrix} 0 & 0 & 1 \\ c_\varphi & s_\varphi & 0 \\ -s_\varphi & c_\varphi& 0 \\ \end{bmatrix} \begin{bmatrix} v_y \\ v_z \\ v_x \\ \end{bmatrix} \\ &= \begin{bmatrix} 1 & 0 & 0 \\ 0 & c_\varphi & s_\varphi \\ 0 & -s_\varphi & c_\varphi \\ \end{bmatrix} \begin{bmatrix} v_x \\ v_y \\ v_z \\ \end{bmatrix}\end{split}\]

Drehachse y = ȳ

../../../_images/trafo_vector_3D_y.png

Details

Zyklisches Vertauschen \((x,y,z)\mapsto(z, x, y)\) in (z) liefert:

\[\begin{split}\begin{bmatrix} v_{\bar z} \\ v_{\bar x} \\ v_{\bar y} \\ \end{bmatrix} &= \begin{bmatrix} c_\varphi & s_\varphi & 0 \\ -s_\varphi & c_\varphi& 0 \\ 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} v_z \\ v_x \\ v_y \\ \end{bmatrix} \\ \leadsto \begin{bmatrix} v_{\bar x} \\ v_{\bar y} \\ v_{\bar z} \\ \end{bmatrix} &= \begin{bmatrix} -s_\varphi & c_\varphi& 0 \\ 0 & 0 & 1 \\ c_\varphi & s_\varphi & 0 \\ \end{bmatrix} \begin{bmatrix} v_z \\ v_x \\ v_y \\ \end{bmatrix} \\ &= \begin{bmatrix} c_\varphi & 0 & -s_\varphi\\ 0 & 1 & 0 \\ s_\varphi & 0 & c_\varphi \\ \end{bmatrix} \begin{bmatrix} v_x \\ v_y \\ v_z \\ \end{bmatrix}\end{split}\]

Programme

Lösung mit Python: Copy - Paste - Play

  • Copy: Source Code (siehe unten) aufklappen und kopieren.

  • Paste: Einfügen als Python-Notebook auf:

  • Play: Ausführen.

Source Code

# -*- coding: utf-8 -*-
from sympy.physics.units import *
from sympy import *

# Units:
(k, M, G ) = ( 10**3, 10**6, 10**9 )
(mm, cm) = ( m/1000, m/100 )
Newton = kg*m/s**2
Pa     = Newton/m**2
MPa    = M*Pa
GPa    = G*Pa
kN     = k*Newton
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([
        # round to place value:
        1,
        0.1,
        0.01,
        0.001,
        0.0001,
        0.00001,
        ])
    objc = deepcopy(obj)
    try:
        tmp = DX(str(float(objc)))
        objc = tmp.quantize(DX(str(pv)),
            rounding=rounding)
    except:
        for i in range(len(objc)):
            tmp = DX(str(float(objc[i])))
            objc[i] = tmp.quantize(DX(str(pv)),
                rounding=rounding)
    return objc

# ---

# User input starts here.

# Vector components in their resp. unit:
(vx, vy)  = (3, 4)
# output precision:
prec = 0.01

# User input ends here.

f = lambda x: iso_round(x,prec)

print(u'\n(x,y)-Components:')
v = Matrix( [vx, vy] )
pprint(V)

p_l = [10, 90, 180, -170]

print(u"\n(x̄,ȳ)-Components:")

for p in p_l:
    tmp = iso_round(p,prec)
    pprint(tmp)

    p *= pi/180
    c, s = cos(p), sin(p)
    R = Matrix([ [c, s] , [-s, c] ])
    tmp = R
    tmp = tmp.applyfunc(f)
    pprint(tmp)
    tmp = R*v
    pprint(iso_round(tmp,0.01))

# Rt = R.transpose()
# tmp = R*V
# tmp = tmp.applyfunc(f)
# pprint(tmp)
#
# pprint("\nr:")
# r = sqrt(vx*vx + vy*vy)
# pprint(r)
#
# pprint("\n(φ₁ / °:")
#
# p1 = 2*atan(vy/(vy+r))
# p1 *= 180/pi
# p2 = p1 + 90
# p = Matrix([iso_round(p1,prec), iso_round(p2,prec)])
# pprint(p)

Lösung mit Python: Copy - Paste - Play

  • Copy: Source Code (siehe unten) aufklappen und kopieren.

  • Paste: Einfügen als Python-Notebook auf:

  • Play: Ausführen.

Source Code

# -*- 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

# ---
# LateX:
kwargs = {}
kwargs["mat_str"] = "bmatrix"
kwargs["mat_delim"] = ""

# Header ends here.

def get_R(phi, axis):
    c, s = cos(phi), sin(phi)
    if axis == "z":
        R = Matrix([
        [ c, s, 0],
        [-s, c, 0],
        [ 0, 0, 1],
        ])
    elif axis == "x":
        R = Matrix([
        [ 1, 0, 0],
        [ 0, c, s],
        [ 0,-s, c],
        ])
    elif axis == "y":
        R = Matrix([
        [ c, 0,-s],
        [ 0, 1, 0],
        [ s, 0, c],
        ])
    return R

phi = 10 *deg

pprint("\n(x,y,z)-Comp.:")
v = Matrix([3,4,5])
R = get_R(phi,"z")
pprint(v)

# v = Matrix([5,3,4])
# R = get_R(phi,"x")
# pprint(v)

# v = Matrix([4,5,3])
# R = get_R(phi,"y")
# pprint(v)

pprint("\n(x̄,ȳ,z̄)-Comp.:")
 = R*v
tmp = 
tmp = iso_round(tmp, "0.01")
pprint(tmp)

Fußnoten:

1

Für Drehung um um beliebige Achsen siehe hier.

2

Einheitenlose Größen: Die verwendeten einheitenlosen Größen sind definiert als die tatsächlichen Größen dividiert durch deren Einheit: Falls gegeben wäre eine Größe mit Einheit „Meter pro Sekunde“. Dann wäre die verwendete einheitenlose Größe gleich dieser gegebenen Größe dividiert durch „Meter pro Sekunde“.