我试图找到MATLAB一个象征性的3×3的旋转矩阵的特征向量,它似乎对一些投入工作,但不是全部,例如:但是符号特征值Matlab的错误
A =
[ cos(q), -sin(q), 0]
[ sin(q), cos(q), 0]
[ 0, 0, 1]
[V,lambda]=eig(A)
V =
[ 0, -i, i]
[ 0, 1, 1]
[ 1, 0, 0]
lambda =
[ 1, 0, 0]
[ 0, cos(q) - sin(q)*i, 0]
[ 0, 0, cos(q) + sin(q)*i]
这工作得很好,如果我尝试一些东西,不是关于一个单元的旋转轴(X,Y,Z)我得到以下错误:
A =
[ cos(q), -sin(q), 0]
[ 0, 0, -1]
[ sin(q), cos(q), 0]
>> [V,lambda]=eig(A)
Warning: basis of eigenspace for eigenvalue cos(q)/3 - (cos(q)^2/3 + cos(q)^3/27 + sin(q)^2/2 + ((cos(q)/3 - cos(q)^2/9)^3 +
(cos(q)^3/27 + cos(q)^2/3 + sin(q)^2/2)^2)^(1/2))^(1/3)/2 + (cos(q)/3 - cos(q)^2/9)/(2*(cos(q)^2/3 + cos(q)^3/27 + sin(q)^2/2 +
((cos(q)/3 - cos(q)^2/9)^3 + (cos(q)^3/27 + cos(q)^2/... [linalg::eigenvectors]
??? Error using ==> mupadmex
Error in MuPAD command: Unable to find explicit eigenvectors.
Error in ==> sym.sym>sym.mupadmexnout at 2003
out = mupadmex(fcn,args{:});
Error in ==> sym.eig at 68
[V,D,p] = mupadmexnout('mllib::eigenvectors',A);
我使用的特征值,找到矩阵的旋转轴,我需要将它用于更复杂的系统
任何帮助,将不胜感激。 谢谢
我一起工作的矩阵是对称的,因此我相信'qz'不起作用,旋转矩阵不是围绕x,y,z的纯粹旋转,而是它们的组合。关于错误的唯一信息恐怕是打印在屏幕上,现在我正在使用角度轴theorom工作正常。 – Max 2011-06-16 16:08:37
尝试在我的版本像yoda它的工作,所以它可能是一个特定于您的版本的错误。此外,您的矩阵示例实际上是两个反射和旋转的组合:[1,0,0; 0,0,1; 0,1,0] * [1,0,0; 0,1,0; 0, 0,-1] * [cos(q), - 罪(q)中,0; SIN(q),COS(q),0; 0,0,0]。 – 2011-06-21 18:30:54
另外,执行eig(A,eye(3),'qz'),其中A也是你的例子。 'qz'标志在A中不需要对称,这意味着不要在算法中使用对称性。 – 2011-06-21 18:38:54