MATLAB でシンボリック 3x3 回転行列の固有ベクトルを見つけようとしています。たとえば、一部の入力では機能するようですが、すべてでは機能しないようです。
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);
固有値を使用して行列の回転軸を見つけていますが、それをはるかに複雑なシステムに使用する必要があります
どんな助けでも大歓迎です。ありがとう