Матриця переходу

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Матрицею переходу в \ n-мірному просторі від базису \langle a_1, a_2, \ldots, a_n \rangle до базису \langle b_1, b_2, \ldots, b_n \rangle є квадратна матриця, стовпці якої — координати розкладу векторів \langle b_1, b_2, \ldots, b_n \rangle в базисі \langle a_1, a_2, \ldots, a_n \rangle.

Позначається P_{a \rightarrow b} \in F^{n*n}

Представлення[ред.ред. код]

Оскільки

\mathbf{b}_1 = \alpha_{11}\mathbf{a}_1 + \alpha_{12}\mathbf{a}_2 + \ldots + \alpha_{1n}\mathbf{a}_n
\mathbf{b}_2 = \alpha_{21}\mathbf{a}_1 + \alpha_{22}\mathbf{a}_2 + \ldots + \alpha_{2n}\mathbf{a}_n
\cdots.
\mathbf{b}_n = \alpha_{n1}\mathbf{a}_1 + \alpha_{n2}\mathbf{a}_2 + \ldots + \alpha_{nn}\mathbf{a}_n

Матриця переходу це \begin{pmatrix}
\alpha_{11} & \alpha_{21} & \ldots & \alpha_{n1} \\
\alpha_{12} & \alpha_{22} & \ldots & \alpha_{n2} \\
\vdots      & \vdots      & \ddots & \vdots \\
\alpha_{1n} & \alpha_{2n} & \ldots & \alpha_{nn}
\end{pmatrix}

При множенні справа вектора з лінійної оболонки базису \langle a_1, a_2, \ldots, a_n \rangle на матрицю переходу ми отримуємо той самий вектор, виражений через базис \langle b_1, b_2, \ldots, b_n \rangle.

Матриці переходу дозволяють виразити лінійні перетворення у форматі зручному для обчислень. Послідовності перетворень можуть бути обчислені шляхом перемноження матриць.

Для лінійних відображень не обов'язково щоб базиси належали одному простору чи, щоб простори мали одинакову розмірність. В такому випадку матриця стає прямокутною.

В однорідній системі координат, афінні перетворення та перспективні проекції в \R^n можуть бути представлені як лінійні перетворення в \R^{n+1}. Через це, матриці перетворення 4x4 широко використовуються в тривимірній графіці.

Побудова матриці переходу[ред.ред. код]

Маючи лінійне перетворення T(x) в функціональній формі, можемо визначити матрицю переходу A, перетворюючи кожний вектор базису за допомогою T, потім вставляємо результати в стовпці матриці. Інакше кажучи,

\mathbf{A} = \begin{bmatrix} T( \vec e_1 ) & T( \vec e_2 ) & \ldots & T( \vec e_n ) \end{bmatrix}

Наприклад, функція T(x) = 5x являє собою лінійне перетворення. Застосувавши описаний процес, отримаємо

T( \vec x ) = 5 \vec x = \begin{bmatrix} 5 && 0 \\ 0 && 5 \end{bmatrix} \vec x

Приклади перетворень на площині[ред.ред. код]

Обертання[ред.ред. код]

Функціональна форма запису обертання на кут θ проти годинникової стрілки відносно початку координат

\begin{cases} x' = x \cos \theta - y \sin \theta \\ y' =  x \sin \theta + y \cos \theta \end{cases}

в матричній формі, це матриця повороту:


\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} \cos \theta &  -\sin\theta \\ \sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}

Маштабування[ред.ред. код]

Функціональна форма маштабування:

\begin{cases} x' = s_x \cdot x \\ y' = s_y \cdot y \end{cases}.

В матричній формі — діагональна матриця:


\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}

Коли \ s_x s_y = 1, тоді зберігається площа.

Зсув[ред.ред. код]

У випадку зсуву (shear) можливі два варіанти. Зсув по осі x x' = x + ky і y' = y; тоді матриця зсуву має вигляд:


\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} 1 & k \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}

Зсув по осі y x' = x and y' = y + kx, в цьому випадку:


\begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ k & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix}

Відбиття[ред.ред. код]

Для відбиття вектора від лінії яка проходить через початок координат, нехай (lx, ly) вектор, що лежить лінії:

Матриця Хаусхолдера:


\mathbf{A} = \frac{1}{l_x^2 + l_y^2} \begin{bmatrix} l_x^2 - l_y^2 & 2 l_x l_y \\ 2 l_x l_y & l_y^2 - l_x^2 \end{bmatrix}

Відбиття відносно лінії яка не проходить через початок координат не є лінійним перетворенням; це перетворення афінне.

Для відбиття точки відносно площини ax + by + cz = 0 можна використати рівняння  I-2NN^T . Де I одинична матриця і N одиничний вектор нормалі до площини. Матриця перетворення буде мати вигляд:


\begin{bmatrix} 1 - 2 a^2  & - 2 a b & - 2 a c \\ - 2 a b  & 1 - 2 b^2 & - 2 b c  \\ - 2 a c & - 2 b c & 1 - 2c^2 \end{bmatrix}

Врахуйте, що такий підхід працює лише якщо площина проходить через початок координат: якщо ні, потрібне афінне перетворення.

Ортогональна проекція[ред.ред. код]

Для проекціонування вектора ортогонально на лінію яка проходить через початок координат, поначемо як (ux, uy) вектор, що лежить на лінії. Тоді використовуємо натупну матрицю:


\mathbf{A} = \frac{1}{u_x^2 + u_y^2} \begin{bmatrix} u_x^2 & u_x u_y \\ u_x u_y & u_y^2 \end{bmatrix}

Як і з відбиттям, ортогональна проекція на лінію яка не проходить через початок координат є афінним перетворенням, а не лінійним.

Композиція і відкат перетворень[ред.ред. код]

Одна з головних причин використання матриць для представлення лінійних перетворень це те, що перетворення можуть бути легко зкомпоновані і "відкочені".

Ефект композиції досягається шляхом матричного добутку. Якщо A та B матриці двох лінійних перетворень, тоді:

\mathbf{B}(\mathbf{A} \vec x ) = (\mathbf{BA}) \vec x

Іншими словами матриця композиції перетворень A і B це просто добуток окремих матриць перетворень. Зверніть увагу на порядок множників у добутку.

Обернена матриця A-1 представляє перетворення, яке "відкочує" A.

Див. також[ред.ред. код]

Посилання[ред.ред. код]