用Mathematica计算旋转矩阵

本文,用Mathematica来计算旋转矩阵。

工具/原料

  • 电脑
  • Mathematica

方法/步骤

  1. 1

    首先需要指出,二维空间内里,默认的扭转,都以原点为扭转中间。

    平面上绕原点扭转u,对应的扭转矩阵是:

    RotationMatrix[u]

    0cdb2f0e1799e92af053e8f4e1fec314f0c5a043.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80
  2. 2

    平面上某个点{x,y},绕着原点扭转u,半斤八两于扭转矩阵与点坐标的乘积:

    RotationMatrix[u].{x,y}

    07c98f2ca5cadce8c7a3aa48fcf7980e5e209543.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80
  3. 3

    三维空间内里,绕着x轴的扭转,可以暗示为:

    RotationMatrix[u, {1,0,0}]

    注重,这时辰,扭转中间已经不是原点了。

    3761a73acd8920c544e42281568a59de44078843.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80
  4. 4

    点{x,y,z}绕x轴扭转u,获得的点的坐标可以写当作:

    RotationMatrix[u, {1,0,0}].{x,y,z}

    您会发明,扭转前后,点的x坐标稳定。

    444696013870d54150670cbc2e0f94fc518c8043.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80
  5. 5

    设直线l颠末原点,和点{x,y,z},那么,绕直线l的扭转,就可以写当作:

    RotationMatrix[u, {x,y,z}]

    51cd85cec7f88a772f3622f86e4a2f27e6eff843.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80
  6. 6

    上面这个矩阵很庞大,我们需要指定,x,y,z都是实数。

    FullSimplify[

     Refine[RotationMatrix[u, {x, y, z}], 

       Element[{x, y, z}, Reals]] /. {Abs[x]^2 -> x^2, Abs[y]^2 -> y^2, 

       Abs[z]^2 -> z^2}]

    e40b3127e7ef280613ea3869b840b6f39087f243.jpg?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_500%2Climit_1%2Fformat%2Cf_auto%2Fquality%2Cq_80END
  • 发表于 2022-08-23 21:32
  • 阅读 ( 182 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论