Macierz kosinusów kierunkowych

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 7172 razy

Zastosowanie macierzy kosinusów kierunkowych Mc zostało omówione na stronie Matematyka → Wektory → Obrót wektora za pomocą wektora kierunkowego, gdzie rozwiązane zostały dwa przykłady obrotu wektora V za pomocą jednego wektora kierunkowego oraz za pomocą dwóch wektorów kierunkowych.

Macierz kosinusów w układach 2W

Załóżmy, że mamy parę wersorów i2, j2 prostopadłych do siebie i takich, że i2, j2i oraz i2, j2j, gdzie i oraz j są wersorami leżącymi: pierwszy w osi x, zaś drugi w osi y.

Gdy już mamy tą naszą parę wektorów, to macierz kosinusów tworzymy za pomocą iloczynu skalarnego par wersorów w następujący sposób:

Ktoś może zadać sobie wielce zacne pytanie: a na co mnie to? Odpowiedź brzmi: to się przydaje, gdy chcesz obrócić dany punkt lub zbór punktów o kąt określony przez pewien inny dowolny wektor (bele by nie był to wektor zerowy). O tym była właśnie mowa na stronie Matematyka → Wektory → Obrót wektora za pomocą wektora kierunkowego. Jak użyć macierzy z wzoru [1] ten kto czytał już o macierzy obrotu Mo może słusznie się domyślić, że należy macierz kosinusów kierunkowych Mc przemnożyć przez obracany wektor w sposób następujący:

Powyższy wzór obraca wektor V względem początku układów współrzędnych o kąt zawarty pomiędzy wersorem i a wersorem i2 lub (jak kto woli) pomiędzy wersorem j a wersorem j2. Możliwe jest wyznaczenie wersorów i2 oraz j2 na podstawie jednego tylko wektora kierunkowego. Przykład obrotów wykonywanych na płaskim obiekcie za pomocą macierzy kosinusów kierunkowych Mc można zobaczyć na animacji z rysunku 1.

Animacja obrotu przykładowego obiektu za pomocą wektora kierunkowego.
Rys. 1
Animacja obrotu przykładowego obiektu za pomocą wektora kierunkowego.

Poszczególne klatki animacji wygenerowane w programie wxMaxima za pomocą następującego kodu:

x1:2; y1:1; xo: 2; yo: 0; da: 5 * %pi / 180; v: matrix([x1],[y1]); ik: matrix([xo], [yo]) * 1 / sqrt(xo^2+yo^2); jk: matrix([-ik[2][1]],[ik[1][1]]); obj:matrix([0.5,1.5,1.5,1,1,0.5,0.5],[0.5,0.5,1,1,2,2,0.5]); Mk: matrix([ik[1][1], jk[1][1]],[ik[2][1], jk[2][1]]); obj2: float(Mk . obj); l: float(sqrt(v2[1][1]^2+v2[2][1]^2)-sqrt(v[1][1]^2+v[2][1]^2)); Mrot: float(matrix([cos(da), -sin(da)],[sin(da),cos(da)])); i:0; for i:0 thru 71 do( Mk: matrix([ik[1][1], jk[1][1]],[ik[2][1], jk[2][1]]), obj2: float(Mk . obj), plot2d([[discrete, obj2[1], obj2[2]], [discrete, [0, ik[1][1]*2], [0, ik[2][1]*2]], [discrete, obj[1], obj[2]]],[x,-3,3],[y,-3,3],[gnuplot_term, "png size 500,500"], [gnuplot_out_file, printf(false,"C:\\obrobr ~f.png",i)],[legend,"obrocenie","wektor kierunkowy","obracany"]), ik: Mrot . ik, jk: Mrot . jk)$

Animacja poskładana w programie Gimp

Przykładowe zadania z obrotów w 2W układzie za pomocą macierzy kosinusów Mc

Zadanie 1

Obrócić wektor V1 wektorem kierunkowym V2.

vec{V_1}=egin{bmatrix}{-1  2}end{bmatrix};,vec{V_2}=egin{bmatrix}{1  1}end{bmatrix}

Zacząć należy od wyznaczenia wersorów i2 oraz j2 wykorzystując w tym celu wzory [1] i [2] z strony Matematyka → Wektory → Obrót wektora za pomocą wektora kierunkowego.

Teraz, gdy wersory zostały wyznaczone, obliczyć należy macierz kosinusów Mc zgodnie z wzorem macierzy zawartej w równaniu [3].

Pozostało pomnożyć macierz kosinusów Mc z wektorem V1 zgodnie z wzorem [3]:

Zadanie 2

Obrócić wektor V3 o kąt zawarty pomiędzy wektorami V1 i V2.

vec{V_1}=egin{bmatrix}{1  2}end{bmatrix};,vec{V_2}=egin{bmatrix}{2  1}end{bmatrix};,vec{V_3}=egin{bmatrix}{-2  -1}end{bmatrix}

Obliczanie wersorów dla wektora V1:

Obliczanie wersorów dla wektora V2:

Wyliczam macierz kosinusów Mc:

Obracanie wektora V3:

Macierz kosinusów kierunkowych Mc w układach 3W

Myślę, że o wiele ciekawszym zagadnieniem, jest fakt, że możemy sobie obrócić dowolny punkt 3W za pomocą macierzy kosinusów kierunkowych Mc. Do konstrukcji takiej macierzy (jak zapewne się domyślacie) potrzebne są trzy wersory i2, j2 oraz k2, które muszą być względem siebie prostopadłe i dobrze by było, gdyby się nie pokrywały z wersorami układu współrzędnych (bo taki obrót to raczej niewiele nam da).

Wzór na otrzymacie macierzy kosinusów kierunkowych Mc jest więc następujący:

Cechy macierzy kosinusów kierunkowych Mc

Każda macierz kosinusów kierunkowych Mc jest macierzą ortogonalną i jako taka spełnia określone warunki:

1) Wartość wyznacznika macierzy obrotu Mc zawiera się w przedziale |Mc|∈{-1; 1}

2) Transpozycja macierzy kosinusów kierunkowych McT jest równa macierzy Mc-1:

3) Iloczyn macierzy kosinusów kierunkowych Mc z jej transpozycją McT daje w wyniku macierz jednostkową: