计算尺寸> 3

时间:2015-07-22 14:35:51

标签: r math rotation geometry euler-angles

在尝试回答another SO question时,如何计算尺寸的欧拉角的问题> 3出现了。 RSpincalc包具有简单的DCM2EA函数,用于将3d旋转矩阵转换为Euler或Tait-Bryan角度,但这仅处理3维的特定情况。 wikipedia page on Euler angles简要讨论了将欧拉角扩展到更高维度的问题,并引用了Italian paper,这显然将该方法推广到更多维度。不幸的是,我的意大利语和我的数学都不能拿到那篇论文并创建一个可用的R函数。

至少可以说,this answer中使用的当前方法有点麻烦。我使用Ryacas包创建一个符号矩阵,它是任意数量维度的一系列旋转的复合。然后可以针对已知的旋转矩阵迭代地求解,以找到所需的角度。它有效,但一旦维数为5或更多,它就会越来越慢。

通过实施Italian paper中的方法或其他方式,是否有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

1972年有一篇有趣的论文here,它解决了在给定N维正交矩阵的情况下计算N维欧拉角的问题(我假设你就是这样)。我浏览了纸张,它给出了你似乎需要的公式:

  1. 给定N维欧拉角的变换矩阵
  2. 给定变换矩阵的N维欧拉角
  3. 替代参数化,因为论文中给出的公式解决了一个特定的参数化,这对于欧拉表示是常见的。
  4. 我没有尝试重新推导和验证他们的方程式,但他们给出了明确的公式,因此您可以为低维度实现它们,您已经有了答案,看看它们是否一致。