Матрица на ротация
Ма́трицата на ротация е ортогонална матрица, чрез която се извършва собствено ортогонално преобразование в евклидовото пространство. При умножение на кой да е вектор с матрицата на ротация дължината (нормата) на вектора не се променя. Детерминантата на матрицата на ротация е равна на единица.
По правило се счита, че за разлика от матрицата на преход от един базис в друг, при умножение на вектор по матрицата на ротация се извършва ротация на вектора, а координатната система остава неподвижна. На практика разликата между матрицата на преход и матрицата на ротация е само в знака на ъглите на ротация, следователно матрицата на преход може да се получи от матрицата на ротация (и обратно) чрез транспониране.
Матрица на ротация в двумерното пространство
[редактиране | редактиране на кода]Ротацията в двумерното пространство се задава с един ъгъл чрез следната матрица на линейно преобразование в декартова координатна система:
Ротацията се извършва чрез умножение на матрицата на ротация с вектор-стълб, който представя точката в двумерното пространство:
- .
Координатите (x',y') в резултат на ротацията на точката (x, y) се получават както следва:
- ,
- .
Знаците във формулите зависят от това дали координатната състема е лява, или дясна, и от посоката на въртене (по посока на часовниковата стрелка или обратно). Горният знак е в сила за общоприетата конвенция: за дясна координатна система и положителна посока на ротация – обратно на часовниковата стрелка.
Матрица на ротация в тримерното пространство
[редактиране | редактиране на кода]Всяка ротация в тримерното пространство може да бъде представена като композиция от ротации около три ортогонални оси (например, около декартовите координатни оси). На тази композиция соответства матрица, равна на произведението на соответните три матрици на ротация.
Матриците на ротация около ос на декартовата координатна система на ъгъл , в тримерното пространство с неподвижна координатна система, се дават както следва:
- Ротация около оста :
- ,
- Ротация около оста :
- ,
- Ротация около оста :
- .
При тези ротации на положителните стойности на ъглите соответства ротация на вектора в посока, обратна на часниковата стрелка в дясна правоъгълна координатна система.
Матрица на ротация в n-мерното пространство
[редактиране | редактиране на кода]По аналогичен начин могат да бъдат записани матрици на ротация за всяко крайномерно пространство.
Трябва обаче да се има предвид, че за -мерно пространство с по-висока размерност от трета (n>3), не съществува единствена права, която да е ортогонална на две зададени прави, и поради това не може да се дефинира ротация около някаква ос – вместо това се дефинира ротация в равнина. При ротация в n-мерно пространство, всички точки, които променят координатите си, се движат паралелно на някаква двумерна равнина.
И така, напълно аналогично на тримерния случай (с направената уговорка за ротация в равнина) можем да запишем матрицата на ротация в коя да е координатна равнина за всяко крайномерно пространство.
Например:
е матрица на ротация в 5-мерно пространство в координатната равнина ,
е матрица на ротация в 7-мерно пространство в координатната равнина .
- При това представяне знаците пред синусите се определят от реда, в който се индексират координатните оси в равнината на ротация: за тази, която е изброена първа, в съответния ред пред синуса има знак минус.
- Очевидно е, че матрицата на ротация в координатната равнина съвпада с матрицата на ротация в координатната равнина и т.д. с точност до заменяне на знака на ъгъла на ротация на противоположен.
- Тъй като такива матрици с разлика само в реда на индексите очевидно не са независими, за получаване на произволен ъгъл на ротация е достатъчно в композицията да се включи само едната от тях, т.е., например, само , а не и едновременно.
- Като се вземе предвид горното, не е трудно да се изчисли общия брой на двумерните ротации в координатни равнини: , където n е размерността на пространството.
Свойства на матриците на ротация
[редактиране | редактиране на кода]- R-1= RТ – инверсната матрица на ротация се получава с просто транспониране
- Редовете Ri и колоните Cj, на n-мерната матрица на ротация (разглеждани като вектори) образуват ортонормирани базиси на n-мерното евклидово пространство
- – матрицата има единична детерминанта
- Произведението на матрици на ротация е също матрица на ротация
Матрица за ротация на вектор по посока на координатна ос
[редактиране | редактиране на кода]Ротацията на зададен n-мерен вектор X по посока на една от координатните оси (например по посока на оста x1) може да бъде извършена с n-1 последователни ротации в координатни равнини (xn-k, xn-k+1), k=1,…,n-1 посредством умножение с матрици на Гивънс , като коефициентите S=sin(θn-k) и C=cos(θn-k) на матриците се изчисляват по формулата:
След всяка ротация се получава вектор, който е ортогонален на координатна ос xn-k+1 в текущата координатна равнина (xn-k, xn-k+1). Така след n-1 ротации се получава вектор, който е ортогонален на всички координатни оси с изключение на x1. Матрицата на ротация Mx се получава като произведение от матриците на Гивънс , k=1,…,n-1 както следва:
Дължината rX = на зададения вектор X и ъглите на ротации θ1, ..., θn-1 от горната формула са всъщност координатите на вектора X, представен в хиперсферична координатна система като XS = [rX, -θ1, ..., -θn-1]T. Ъглите на ротации са включени с отрицателен знак, защото при ротация на зададен вектор по посока на координатна ос x1 ротациите в координатните равнини се извършват от вектора към координатните оси, докато при представянето на вектора в хиперсферична координатна система ъглите се отчитат в обратна посока – от осите към вектора.
В [3] е показано, че е възможно паралелно изпълнение на двумерните ротации чрез представяне на входния вектор като сума от вектори и ротация на получените вектори до направлението на една от координатните оси. Така броят на последователните двумерни ротации може да се сведе до , като обаче общия брой на двумерните ротации остава равен на n-1. При паралелно изпълнение на двумерните ротации се получават k матрици на етапите MSk, k=1, 2, …, както следва:
и матрицата на ротация Mx се получава като произведение от матриците на етапите . Предимството на паралелното на изпълнение на двумерните ротации (независимо от това дали на практика изчисленията се извършват последователно) е в това, че се намалява броя на последователно изчисляваните двумерни ротации до , с което се намалява натрупването на грешки от закръгления при изчисленията.
В [3] е даден код на функция на Matlab, чрез която се получава матрица на ротация на зададен n-мерен вектор X по посока на координатната ос x1 като се използва формулата за паралелно изпълнение на двумерните ротации.
Матрица за ротация на зададен вектор X по посока на зададен вектор Y
[редактиране | редактиране на кода]С използване на базис, конструиран от зададените вектори
[редактиране | редактиране на кода]Изпълнява се следната последователност от операции:
- Чрез процедура на Грам-Шмит се получават два ортогонални вектора в координатната равнина, в която лежат зададените вектори и .
- Разширява се този двумерен ортонормиран базис до n-размерен базис B2, в който зададените вектори и се трансформират в и .
- Създава се матрица на Гивънс за , която извършва ротация на вектора в координатната равнина , по посока на вектора .
- Получава се търсената матрица на ротация M като където е матрица на преход от началния базис B в конструирания базис B2.
С използване на отражение на Хаусхолдер
[редактиране | редактиране на кода]Ако векторите X and Y имат еднаква дължина (норма), съществува ортогонална симетрична матрица P такава, че където и . Матрицата P е матрица на отражение (не на ротация), тъй като , (което дава и името на метода) и поради това, за да се получи матрица на ротация M, за която , трябва да се изпълнят две последователни отражения и от получените матрици на отражение и да се получи матрица на ротация .
С използване на NRMG алгоритъм
[редактиране | редактиране на кода]Алгорътъмът NRMG (N-dimensional Rotation Matrix Generation) дава възможност за получаване на матрица на ротация на зададен n-мерен вектор X по посока на зададен n-мерен вектор Y чрез ротации на векторите X и Y по посока на една от координатните оси (напр. x1).
Алгоритъмът включва следната последователност от операции:
- Получаване на матрица на ротация Mx, която извършва ротация на зададения вектор X по посока на координатната ос x1.
- Получаване на матрица на ротация My, която извършва ротация на зададения вектор Y по посока на координатната ос x1.
- Получаване на матрица на ротация M, която извършва ротация на зададения вектор X по посока на зададения вектор Y както следва:
В [3] е даден примерен код на Matlab за получаване на n-мерна матрица на ротация по зададени n-мерни вектори X и Y с използване на NRMG алгоритъма.
Забележки
[редактиране | редактиране на кода]- Първите две свойства на матриците на ротация, изброени по-горе (като второто е следствие от първото), са всъщност свойства на ортогоналните матрици. За да бъде една ортогонална матрица матрица на ротация, е задължително тя да изпълнява и третото условие: det R = 1. Ако детерминантата на матрицата е с противоположен знак (det R = -1), тогава матрицата е матрица на отражение
- В дадения по-горе алгоритъм за изчисляване на матрица за ротация на зададен вектор по посока на координатна ос, ъглите, които вектора сключва с координатните оси се изчисляват в последователност от θn-1 към θ1 В някои случаи при представянето на вектор в хиперсферична координатна система ъглите се изчисляват в обратен ред – от θ1 към θn-1 и това естествено дава други стойности на ъгловите координати.
Източници
[редактиране | редактиране на кода]- Лурье А. И. Аналитическая механика, M. Физматлит, 1961 г. 824 с.
- Константинов М. М. Елементи на линейната алгебра: Вектори и матрици, С. Университет по архитектура, строителство и геодезия, 2000 г. 300 с.
- Zhelezov O. I. N-dimensional Rotation Matrix Generation Algorithm // American Journal of Computational and Applied Mathematics 7 (2). 2017. DOI:10.5923/j.ajcam.20170702.04. с. 51 – 57.
- Zhelezov O. I. One Modification which Increases Performance of N-Dimensional Rotation Matrix Generation Algorithm // International Journal Of Chemistry, Mathematics And Physics(IJCMP) 2 (2). April 2018. DOI:10.22161/ijcmp.2.2.1. с. 13 – 18.
Външни препратки
[редактиране | редактиране на кода]- Rotation matrix Архив на оригинала от 2017-05-16 в Wayback Machine.