2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Поворот пространства в гиперплоскости по двум векторам
Сообщение18.02.2019, 09:39 
Аватара пользователя


07/03/06
128
Уважаемые математики.
Когда-то я решил эту задачу в общем виде, но потерял выкладки... Это не учебная задача, так что можно публиковать в Форуме готовый ответ (хотя бы без решения).
В конечномерном линейном пространстве дан ортонормированный базис и ещё 2 независимых нормированных вектора. Надо найти матрицу перехода к новому базису, получающему из поворота исходного в гиперплоскости, натянутой на 2 заданных вектора, причем так, чтобы первый вектор перешёл во второй.
Публикация решения в общем виде поможет ещё многим гостям Форума...

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение18.02.2019, 10:46 
Заслуженный участник
Аватара пользователя


30/01/06
72407
Нет, это простая учебная задача. (Если над $\mathbb{R},$ по крайней мере.) Так что, решайте сами. Мы можем подсказывать. Если вы с чего-то начнёте.

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение18.02.2019, 12:16 
Аватара пользователя


07/03/06
128
Такого сообщения я больше всего опасался...
А если я сам напишу здесь правильный ответ для будущих посетителей Форума, то его потом не сотрут?

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение18.02.2019, 12:48 
Заслуженный участник


27/04/09
28128
Нет. Зато его могут заругать, если он неверный или если его вывод методически ужасен.

-- Пн фев 18, 2019 14:50:12 --

Но вообще это правда такая простая задача, что странно, как человек, перед которым она вообще может встать (то есть он понимает формулировку), не сможет её решить за менее чем час. :-)

Кроме того кстати матрица не нужна, можно записать оператор инвариантно, это и короче и красивее.

-- Пн фев 18, 2019 14:52:45 --

И кстати говоря я сам эту формулу где-то здесь постил в какой-то из тем про вычисление кучи точек, равномерно расположенных на дуге окружности. Ну и поиск скорее всего либо достаточно хорош, чтобы найти любую из этих тем, когда это будет нужно, либо достаточно плох, чтобы не найти ни одну.

-- Пн фев 18, 2019 15:02:10 --

Да и там была более общая. В вашем случае всё вообще простецко.

Кстати,
Кролик в сообщении #1376841 писал(а):
в гиперплоскости, натянутой на 2 заданных вектора
Просто плоскости же. Гиперплоскость — это подпространство коразмерности 1, а тут явно имеется в виду подпространство размерности 2.

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение18.02.2019, 21:45 
Аватара пользователя


07/03/06
128
arseniiv в сообщении #1376872 писал(а):
И кстати говоря я сам эту формулу где-то здесь постил в какой-то из тем про вычисление кучи точек, равномерно расположенных на дуге окружности. Ну и поиск скорее всего либо достаточно хорош, чтобы найти любую из этих тем, когда это будет нужно, либо достаточно плох, чтобы не найти ни одну.
Да и там была более общая. В вашем случае всё вообще простецко.
-- Искал прилежно, но нашёл только для случая 4-х мерного пространства, а надо в общем виде... Странно, что этой распространённой вспомогательной задачи на форуме так и не описано. (Кстати, сразу кинуть ссылку в ответ правила не запрещают, а час времени Вы бы мне сэкономили.)
arseniiv в сообщении #1376872 писал(а):
Кроме того кстати матрица не нужна, можно записать оператор инвариантно, это и короче и красивее.
-- Имеется в виду такая запись?
$$
\vec x' = \vec x - \frac{1}{1+c}\left(\left(\vec v_1 - (1+2c) \vec v_2\vphantom{2^2}\right)(\vec v_1,\, \vec x) + \left(\vec v_1+\vec v_2\vphantom{2^2}\right)(\vec v_2,\, \vec x)\right)\, ,\quad\mbox{где }c=(\vec v_1,\, \vec v_2)
$$
Поворот вектора $\vec v_1$ в $\vec v_2$.

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение19.02.2019, 09:49 
Заслуженный участник


27/04/09
28128
Уж больно сложная она у вас получилась.

-- Вт фев 19, 2019 11:57:16 --

То есть как минимум стоило бы перейти от $\vec v_2$ к $\vec v'_2$, получающемуся из него ортогонализацией.

Ну и я бы представлял оператор как прямую сумму операторов на этой плоскости, назовём её $A$, и её ортогональном дополнении $A^\bot$. Последний оператор просто единичный и особого интереса не представлял изначально, а первый легко нарисовать.

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение21.02.2019, 22:50 
Аватара пользователя


07/03/06
128
arseniiv в сообщении #1377067 писал(а):
Уж больно сложная она у вас получилась.
-- При $\vec v_1 \bot \vec v_2$ формула упрощается. Обратите внимание, что речь идёт о линейном унитарном операторе, соответствующем повороту пространства на угол меньший чем $\pi$. Поворот на бóльшие углы формула не поддерживает. Следует также обратить внимание на то, что вектора $\vec v_1$ и $\vec v_2$ должны быть нормированы на единицу!
Для косвенной проверки правильности формулы можно подставить в неё $\vec x = \vec v_1$ и получить $\vec x' = \vec v_2$; потом подставить $\vec x = \vec v_2$ и получить $\vec x' = - \vec v_1 + 2c \,\vec v_2$. Но наиболее впечатляет проверка необходимого условия унитарности для произвольной пары векторов:
$$
(\vec x'_1,\, \vec x'_2) = (\vec x_1,\, \vec x_2) \, ,\qquad \forall c \neq -1\, .
$$
Это действительно вращение!

-- Чт фев 21, 2019 23:07:59 --

На мой взгляд формула важна для следующего практического применения. Иногда имеются СЛАУ с известным ядром симметричной системной матрицы и с правой частью, заведомо ортогональной этому ядру. Причём в ядре немного (взаимно ортогональных) векторов. Как красиво решить такую систему уравнений? -- Имея нашу формулу, можно взять простейший ортонормированный базис из всем известных столбцов чисел и начинать его крутить: сначала, чтобы последний базисный вектор совпал с одним из опорных векторов ядра, потом, чтобы предпоследний совпал с другим и так до полного исчерпания ядра... В конечном результате мы получим СЛАУ чуть меньшей размерности, но с невырожденной матрицей, а такую систему решить уже немудрено.

 Профиль  
                  
 
 Re: Поворот пространства в гиперплоскости по двум векторам
Сообщение22.02.2019, 18:19 
Заслуженный участник


27/04/09
28128
Про практическое применение ничего не скажу, но всё-таки в текущем виде формула неудобная, и это должно быть видно. Неудобная и для численного применения — будет больше операций, чем составление матрицы и умножение на неё — и для анализа человеком — не отрефакторена. Вот ортогонализация $\vec v_2$ до $\vec v'_2 = \operatorname{sgn}(\vec v_2 - c\vec v_1)$, где $c = (\vec v_1,\vec v_2)$, сделала бы её куда прозрачнее, потому что мы будем иметь дело с обычной матрицей поворота, просто оформленной как надо. После этого в плоскости $A$ оператор запишется как $R_A = \vec v_1\otimes(c f_1 - s f_2) + \vec v'_2\otimes(s f_1 + c f_2)$, где $s = \sqrt{1-c^2}$ и $f_1 = \vec v_1^\flat, f_2 = \vec v'_2^\flat$ — линейные формы, сопоставляемые скалярным произведением; ну и во всём пространстве он запишется как $R = R_A\oplus\mathrm{id}_{A^\bot}$. Это куда нагляднее и позволяет видеть, что сложности кажущиеся. (Потому что матрица $R$ для базиса $(\vec v_1,\vec v'_2,\ldots)$ пишется автоматически. Понимаю, что $\oplus,\otimes,{}^\flat$ могут кого-то напугать, но это будут его проблемы, потому что нормальная вычислительная линейная алгебра требует не поверхностного знания.)

Кролик в сообщении #1377626 писал(а):
Обратите внимание, что речь идёт о линейном унитарном операторе, соответствующем повороту пространства на угол меньший чем $\pi$. Поворот на бóльшие углы формула не поддерживает. Следует также обратить внимание на то, что вектора $\vec v_1$ и $\vec v_2$ должны быть нормированы на единицу!
Часть очевидна из постановки (если угол $\pi$, $\langle\vec v_1,\vec v_2\rangle$ — прямая, а не плоскость), часть следует из ваших ограничений в ней.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group