Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica 如何在Mathematica中找到矩阵指数?_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica 如何在Mathematica中找到矩阵指数?

Wolfram mathematica 如何在Mathematica中找到矩阵指数?,wolfram-mathematica,Wolfram Mathematica,我试图取一个斜对称旋转矩阵的矩阵指数,S。我希望结果是罗德里格斯的旋转公式I+sin(θ)*S+(1-cos(θ))*S*S。然而,Mathematica返回的结果与公式不同,它的结果是尝试取负数的平方根 这是我的密码: S = { { 0, -omegaz, omegay }, {omegaz, 0, -omegax}, {-omegay, omegax, 0} }; FullSimplify[MatrixExp[S]] 这就产生了Mathematica: 我做错什么了吗?结果是一样的 在

我试图取一个斜对称旋转矩阵的矩阵指数,
S
。我希望结果是罗德里格斯的旋转公式
I+sin(θ)*S+(1-cos(θ))*S*S
。然而,Mathematica返回的结果与公式不同,它的结果是尝试取负数的平方根

这是我的密码:

S = { { 0, -omegaz, omegay }, {omegaz, 0, -omegax}, {-omegay, omegax, 0} };
FullSimplify[MatrixExp[S]]
这就产生了Mathematica:


我做错什么了吗?

结果是一样的

在Rodrigues的旋转公式中,倾斜矩阵由单位向量构成,因此假设:

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可以正确计算旋转矩阵