Как найти экспоненциальную матрицу в Mathematica? - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь взять экспоненциальную матрицу кососимметричной матрицы вращения, S. Я ожидаю, что результатом будет формула вращения Родригеса I + sin(theta)*S + (1-cos(theta))*S*S. Однако Mathematica возвращает что-то, что не похоже на эту формулу, и в результате он пытается получить квадратный корень из отрицательного числа.

Вот мой код:

S = { { 0, -omegaz, omegay }, {omegaz, 0, -omegax}, {-omegay, omegax, 0} };
FullSimplify[MatrixExp[S]]

Это приводит к Mathematica:

results

Я что-то не так делаю?

1 Ответ

0 голосов
/ 01 сентября 2018

Результат одинаков.

В формуле вращения Родригеса матрица перекоса составлена ​​из единичного вектора, поэтому вы предполагаете:

1 == omegax^2 + omegay^2 + omegaz^2

А вам нужно использовать:

MatrixExp[theta S]

И если вы запустите:

rod = IdentityMatrix[3] + Sin[theta] S + (1 - Cos[theta]) MatrixPower[S, 2]
rod = FullSimplify[rod, Assumptions -> {omegax^2 + omegay^2 + omegaz^2 == 1}]
expS = FullSimplify[MatrixExp[theta S], Assumptions -> {omegax^2 + omegay^2 + omegaz^2 == 1}]
rod == b
(* True *)

Таким образом, Mathematica правильно вычисляет матрицу вращения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...