obrót układu w 3d

Sześciany. Wielościany. Kule. Inne bryły. Zadania i twierdzenia z nimi związane. Geometria rzutowa w przestrzeni.
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

obrót układu w 3d

Post autor: Fibik »

Chyba dość prosty problem:

mamy dany wektor u, i chcemy teraz obrócić układ współrzędnych, aby ten wektor leżał w osi z.

Jak wygląda transformacja, która to zrealizuje?

Tak na skróty wymyśliłem takie coś.. ale to chyba nie działa poprawnie:

długość wektora jest nieistotna, zatem zakładamy że on ma długość \(\displaystyle{ = 1}\),
a wtedy po obrocie do z otrzymamy wektor \(\displaystyle{ u' = (0,0,1)}\),
zatem to będzie po prostu nasza nowa oś z, czyli: z' = k'.

Pozostałe osie są prostopadłe do: \(\displaystyle{ u' = z'}\), zatem bierzemy tak:
\(\displaystyle{ x' = i' = u\times i}\), gdzie: \(\displaystyle{ i = (1,0,0)}\), oczywiście.

a nowa oś \(\displaystyle{ y}\), czyli \(\displaystyle{ y'}\), jest prostopadła do tych obu, zatem znowu robimy iloczyn wektorowy:
\(\displaystyle{ y' = j' = i' \times k' = (u \times i) \times u}\).

Finalnie mam trzy wersory zatem macierz transformacji jest chyba taka:

\(\displaystyle{ A = (x', y', z')^T}\), co znaczy że po prostu wypisuję składowe tych nowych wersorów w kolejnych wierszach tej macierzy.

Sprawdzam:
\(\displaystyle{ A u = (x'\cdot u, y'\cdot u, u\cdot u) = (0,0,1)}\)
czyli niby poprawnie... nowa oś \(\displaystyle{ z}\) jest teraz zgodna z wektorem \(\displaystyle{ u}\).
Ostatnio zmieniony 2 cze 2016, o 21:06 przez AiDi, łącznie zmieniany 1 raz.
Powód: Braki w LaTeX-u.
M Maciejewski
Użytkownik
Użytkownik
Posty: 318
Rejestracja: 14 maja 2016, o 16:25
Płeć: Mężczyzna
Lokalizacja: Toruń
Pomógł: 90 razy

obrót układu w 3d

Post autor: M Maciejewski »

Przyznam, że nic nie zrozumiałem z rozumowania.
Domyślam się, że chodzi o znalezienie odwzorowania ortogonalnego \(\displaystyle{ A\colon \mathbb R^3\to \mathbb R^3}\), który by spełniał warunek \(\displaystyle{ A(u)=(0,0,1)}\), przy czym zakładamy, że \(\displaystyle{ \|u\|=1}\).
Wystarczy uzupełnić rodzinę \(\displaystyle{ \{u\}}\) do bazy ortonormalnej \(\displaystyle{ \{u,v,w\}}\) i rozważyć macierz \(\displaystyle{ A=(v,w,u)^T}\). Ta macierz to jest macierz poszukiwanego od-nia ortogonalnego.
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

obrót układu w 3d

Post autor: Fibik »

Pewnie jakoś tak jest.
Jedynie jest tu problem typu: skąd wiadomo że taka macierz z wektorów bazowych
jest faktycznie macierzą obrotu wektora: u do osi z?

Konkretnie chodzi mi o takie coś:
niech macierz A spełnia warunek: Au = (0,0,1);
no ale to chyba za mało - nie?

Z marszu widzę tu przynajmniej dwie możliwości:
mogę zamienić dwa pierwsze wektory (wiersze) w macierzy... i co to wtedy wyjdzie?

Mam trzy ortogonalne: v,w,u;
gdzie: v = u x z, no a ten trzeci ma być prostopadły do obu, czyli: w = v x u.

ale tak samo mogę zrobić macierz: w, v, u;
i co te dwie wersje reprezentują - oba to obroty, czy tylko jeden z nich?
M Maciejewski
Użytkownik
Użytkownik
Posty: 318
Rejestracja: 14 maja 2016, o 16:25
Płeć: Mężczyzna
Lokalizacja: Toruń
Pomógł: 90 razy

obrót układu w 3d

Post autor: M Maciejewski »

Teraz chyba rozumiem, o co chodzi.
Rozważmy płaszczyznę, na której leżą wektory \(\displaystyle{ u,e_3}\) i znajduję jej bazę \(\displaystyle{ u,v}\) (wektor \(\displaystyle{ v}\) można dostać z \(\displaystyle{ u,e_3}\) metodą ortogonalizacji G-S (*). Oznaczmy przez \(\displaystyle{ \alpha}\) kąt między wektorami \(\displaystyle{ u}\) i \(\displaystyle{ e_3}\) (można dostać, korzystając np. ze wzoru \(\displaystyle{ \cos\alpha=u\cdot e_3}\) (zakładając, że korzystaliśmy z (*), sinus kąta \(\displaystyle{ \alpha}\) będzie dodatni).
Następnie niech \(\displaystyle{ w=u\times v}\).
Poszukiwany obrót w bazie \(\displaystyle{ u,v,w}\) będzie miał macierz \(\displaystyle{ R=\begin{pmatrix}\cos\alpha&-\sin\alpha&0\\ \sin\alpha& \cos\alpha&0\\0&0&1\end{pmatrix}}\).
Zatem ten obrót w bazie kanonicznej będzie miał macierz \(\displaystyle{ P\cdot R\cdot P^{-1}}\), gdzie \(\displaystyle{ P=[u,v,w]}\).
Fibik
Użytkownik
Użytkownik
Posty: 971
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 75 razy

obrót układu w 3d

Post autor: Fibik »

Tak w ogóle to chodzi mi o coś takiego:

mamy cały Układ Słoneczny, czy dowolny, znaczy są dane pozycje \(\displaystyle{ r}\) i prędkości \(\displaystyle{ v}\) wszystkich planet,
ale nie mamy pojęcia w jakim układzie to jest zadane.
Zatem wyliczam moment pędu jako sumę wszystkich: \(\displaystyle{ L = m r \times v}\);
no i to jest wektor u, po znormalizowaniu.

zatem chcę to wszystko obrócić tak aby ten wektor \(\displaystyle{ L}\) leżał na osi \(\displaystyle{ z}\), a nie jakoś byle gdzie..

-- 3 czerwca 2016, 17:21 --

Mogę oczywiście to zwyczajnie obrócić, wyliczając kąt \(\displaystyle{ u}\) do osi \(\displaystyle{ z}\), a potem oś obrotu: \(\displaystyle{ v = u \times z}\);
no i wyliczyć macierz \(\displaystyle{ A}\) wedle wzoru...

albo i tak: obracam raz dookoła \(\displaystyle{ z}\), tak aby wektor \(\displaystyle{ u}\) znalazł się w płaszczyźnie \(\displaystyle{ z-x}\),
i teraz drugi raz obracam dookoła \(\displaystyle{ y}\).

Tylko że wtedy trzeba liczyć pełno tych \(\displaystyle{ \sin, \cos}\), i innych takich duperel... -- 4 czerwca 2016, 17:26 --
M Maciejewski pisze:Rozważmy płaszczyznę, na której leżą wektory \(\displaystyle{ u,e_3}\) i znajduję jej bazę \(\displaystyle{ u,v}\) (wektor \(\displaystyle{ v}\) można dostać z \(\displaystyle{ u,e_3}\) metodą ortogonalizacji G-S (*).
Oj! Coś mętnie nawijasz... co chcesz obliczać metodą Gaussa-Seidla?
Ostatnio zmieniony 3 cze 2016, o 18:58 przez AiDi, łącznie zmieniany 1 raz.
Powód: Nieczytelny zapis - brak LaTeX-a. Proszę zapoznaj się z instrukcją: http://matematyka.pl/latex.htm .
ODPOWIEDZ