2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Матрица преобразования: в чём ошибка?
Сообщение17.07.2012, 17:53 
Здравствуйте. Вопрос, наверно, очень простой, но найти ответ не могу.

Декартова система координат на плоскости. Точка M(x, y). Ось, образующая угол $\alpha$ с осью Oy. Задача: найти матрицу отражения точки относительно этой оси.

Рассуждаю так. Искомое преобразование получим, последовательно проделав:
1) поворот оси и точки M на угол $\alpha$ вокруг начала координат (в результате ось совпадёт с осью Oy);
2) отражение точки M относительно оси Oy;
3) поворот оси и точки M на угол $-\alpha$ вокруг начала координат (в результате ось придёт в своё первоначальное положение).

Получение матриц отдельных преобразований трудностей не вызывает - поворот: $\begin{pmatrix} \cos\alpha & -\sin\alpha \\ \sin\alpha & \cos\alpha \end{pmatrix}$, отражение: $\begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix}$.

Перемножая матрицы, соответствующие отдельным преобразованиям, в порядке (1) x (2) x (3), получаю матрицу $\begin{pmatrix} -\cos 2\alpha & \sin 2\alpha \\ \sin 2\alpha & \cos 2\alpha \end{pmatrix}$, которая действительно соответствует тому результирующему преобразованию, которое мне нужно.

Однако в учебниках пишут, что последовательному применению преобразований a и b соответствует произведение их матриц ba, т.е. матрицы отдельных преобразований должны перемножаться в обратном порядке. Но в этом случае я получаю совсем другую матрицу, которая не даёт того, что мне надо. В чём моя ошибка?

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение17.07.2012, 18:48 
Аватара пользователя
physchemist в сообщении #596258 писал(а):
Перемножая матрицы, соответствующие отдельным преобразованиям, в порядке (1) x (2) x (3), получаю матрицу $\begin{pmatrix} -\cos 2\alpha & \sin 2\alpha \\ \sin 2\alpha & \cos 2\alpha \end{pmatrix}$, которая действительно соответствует тому результирующему преобразованию, которое мне нужно.

А как вы проверяете, что соответствует? Вот я подставляю конкретное значение $\alpha=\tfrac{\pi}{4}$ - ось отражения есть линия $y=-x.$ И получаю, что ваша матрица равна
$\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix},$
то есть отражает относительно линии $y=x.$ По-моему, непорядок.

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение17.07.2012, 18:56 
physchemist в сообщении #596258 писал(а):
Однако в учебниках пишут, что последовательному применению преобразований a и b соответствует произведение их матриц ba, т.е. матрицы отдельных преобразований должны перемножаться в обратном порядке. Но в этом случае я получаю совсем другую матрицу, которая не даёт того, что мне надо. В чём моя ошибка?

Если матрицы $a, b$ у Вас действуют на столбцах правого векторного пространства, то они действуют слева и первой действует та матрица, которая пишется справа: $(ba)v=b(av)$. Если же они действуют на строках левого векторного пространства, то они действуют справа и первой действует та матрица, которая пишется слева: $v(ba)=(vb)a$.

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение17.07.2012, 19:03 
Аватара пользователя
Обычное соглашение, что векторы - это столбцы, и умножаются на матрицы справа. Это может даже не оговариваться.

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение18.07.2012, 06:37 
Munin в сообщении #596269 писал(а):
А как вы проверяете, что соответствует? Вот я подставляю конкретное значение $\alpha=\tfrac{\pi}{4}$ - ось отражения есть линия $y=-x.$ И получаю, что ваша матрица равна
$\begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix},$
то есть отражает относительно линии $y=x.$ По-моему, непорядок.

Возможно, я неточно выразился. Под углом, который образует данная ось с осью Oy, я понимаю угол, на который следует повернуть эту ось (против часовой стрелки), чтобы она совпала с осью Oy. Таким образом, в моём случае ось - прямая с угловым коэффициентом, равным 1, т.е. прямая $y=x$.

apriv в сообщении #596273 писал(а):
Если матрицы $a, b$ у Вас действуют на столбцах правого векторного пространства, то они действуют слева и первой действует та матрица, которая пишется справа: $(ba)v=b(av)$. Если же они действуют на строках левого векторного пространства, то они действуют справа и первой действует та матрица, которая пишется слева: $v(ba)=(vb)a$.

Пардон, не совсем понял. Какое из этих пространств в моём случае? (Обычная правая двумерная декартова система координат).

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение18.07.2012, 06:57 
physchemist в сообщении #596428 писал(а):
apriv в сообщении #596273 писал(а):
Если матрицы $a, b$ у Вас действуют на столбцах правого векторного пространства, то они действуют слева и первой действует та матрица, которая пишется справа: $(ba)v=b(av)$. Если же они действуют на строках левого векторного пространства, то они действуют справа и первой действует та матрица, которая пишется слева: $v(ba)=(vb)a$.

Пардон, не совсем понял. Какое из этих пространств в моём случае? (Обычная правая двумерная декартова система координат).

Откуда ж я знаю, как Вы решили записывать координаты векторов — как столицы или как строчки; и с какой стороны, соответственно, умножать их на скаляры.

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение18.07.2012, 07:30 
apriv

Я записываю векторы как столбцы.

$\begin{pmatrix} \cos\alpha & -\sin\alpha \\ \sin\alpha & \cos\alpha \end{pmatrix} \begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix} \begin{pmatrix} \cos\alpha & \sin\alpha \\ -\sin\alpha & \cos\alpha \end{pmatrix} = \begin{pmatrix} -\cos 2\alpha & \sin 2\alpha \\ \sin 2\alpha & \cos 2\alpha \end{pmatrix}.$
$\begin{pmatrix} x \\ y \end{pmatrix} \begin{pmatrix} -\cos \pi /2 & \sin \pi /2 \\ \sin \pi /2 & \cos \pi /2 \end{pmatrix} = \begin{pmatrix} y \\ x \end{pmatrix}.$

Получается верный результат, но при этом матрицы записаны в том же порядке, в каком производятся преобразования, а не наоборот.

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение18.07.2012, 09:22 
physchemist в сообщении #596438 писал(а):
$\begin{pmatrix} x \\ y \end{pmatrix} \begin{pmatrix} -\cos \pi /2 & \sin \pi /2 \\ \sin \pi /2 & \cos \pi /2 \end{pmatrix} = \begin{pmatrix} y \\ x \end{pmatrix}.$

Получается верный результат, но при этом матрицы записаны в том же порядке, в каком производятся преобразования, а не наоборот.

Никакой результат не получается, поскольку умножение этих матриц не определено.

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение18.07.2012, 11:10 
physchemist,

Вы действительно неточно выразились ---
physchemist в сообщении #596258 писал(а):
Ось, образующая угол $\alpha$ с осью Oy.
а Ваше пояснение
physchemist в сообщении #596428 писал(а):
Под углом, который образует данная ось с осью Oy, я понимаю угол, на который...
таково, что его надо держать в памяти и подглядывать в определение. Определите стандартно, относительно общепринятого репера --- оси OX: $x=t\cos\gamma,\;y=t\sin\gamma$ (я и угол переобозначил). Если Вам непременно надо относительно OY, то потом выразите свою альфу через гамму, совпадающую с естественно определённым полярным углом точки на оси.

Это было во-первых. Вo-вторых я предложу Вам записать преобразования в комплексных числах, что, по-моему, выглядит проще. Произвольную точку $z=x+iy=re^{i\varphi}$ поворачиваем на угол $-\gamma$ (умножаем на $e^{-i\gamma}$), делаем комплексное сопряжение (симметрия отн. ОХ, замена всех вхождений $i$ на $-i$) и поворачиваем взад (возвращаем ось на место): $$z'=\overline{\left(ze^{-i\gamma}\right)}e^{i\gamma}.$$ Распишите, упростите и, например, сравнивайте промежуточные результаты со своими матричными результатами, ищите ошибку...

 
 
 
 Re: Матрица преобразования: в чём ошибка?
Сообщение18.07.2012, 12:07 
Аватара пользователя
physchemist в сообщении #596428 писал(а):
Под углом, который образует данная ось с осью Oy, я понимаю угол, на который следует повернуть эту ось (против часовой стрелки), чтобы она совпала с осью Oy.

Тогда неверен ваш подход:
    physchemist в сообщении #596258 писал(а):
    1) поворот оси и точки M на угол $\alpha$ вокруг начала координат (в результате ось совпадёт с осью Oy);
    2) отражение точки M относительно оси Oy;
    3) поворот оси и точки M на угол $-\alpha$ вокруг начала координат (в результате ось придёт в своё первоначальное положение).
Вы должны были вместо него проделать другую последовательность:
1) поворот оси и точки M на угол $-\alpha$ вокруг начала координат (в результате ось совпадёт с осью Oy);
2) отражение точки M относительно оси Oy;
3) поворот оси и точки M на угол $\alpha$ вокруг начала координат (в результате ось придёт в своё первоначальное положение).

Так что, вы два раза ошиблись (в знаке угла поворота, и в порядке умножения матриц), эти ошибки скомпенсировали друг друга, и вы получили то, что хотели.

И в будущем выражайтесь прозрачнее. Фраза "ось, образующая угол с осью Oy" естественно понимается в смысле, что от оси Oy (уже "нарисованной") откладывается угол в положительном направлении, чтобы "нарисовать" новую ось. А не от "ещё не нарисованной оси" откладывается угол в положительном направлении, чтобы "нарисовать" уже существующую ось.

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group