在尝试回答another SO question时,出现了如何计算尺寸>3的欧拉角的问题。RSpincalc软件包有一个简单的DCM2EA函数,用于将3d旋转矩阵转换为欧拉角或Tait-Bryan角,但该函数仅处理3维的特定情况。wikipedia page on Euler angles简要讨论了将欧拉角扩展到更高维度的问题,并引用了一个Italian paper,它显然将该方法推广到更多的维度。不幸的是,无论是我的意大利语,还是我的数学,都不能很好地完成这篇论文并创建一个可用的R函数。
至少可以说,我目前在this answer中使用的方法有点麻烦。我使用Ryacas包来创建一个符号矩阵,它是任意维数的一系列旋转的组合。然后,可以针对已知的旋转矩阵迭代求解,以找到所需的角度。它是有效的,但一旦维度数达到5或更多,它就会变得越来越慢。
有没有更好的方法来实现这个目标,无论是通过在Italian paper中实现该方法还是通过其他方式?
发布于 2015-08-01 06:53:51
1972年有一篇有趣的论文here,它解决了在给定N维正交矩阵的情况下计算N维欧拉角的问题(我假设这就是你所拥有的)。我浏览了一下这篇论文,它给出了你似乎需要的公式:
由于文中给出的方程解决了欧拉representations.所共有的一种特殊的参数化方法,因此,给定N维欧拉角的变换矩阵
我没有试图重新推导和验证他们的公式,但他们给出了明确的公式,所以你可以实现他们的低维,你已经有答案,看看他们是否同意。
https://stackoverflow.com/questions/31566278
复制相似问题