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 ] 

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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