2

I am trying to calculate the symbolic eigenvalues and vectors of matrices of the form

[ a, c, 0]
[ c, b, e]
[ 0, e, f]

in matlab (replace a,b,c etc with some expressions containing x, y, z). When I have 4 off diagonal terms 0 then the program is succesful. But when the matrix has only two off diagonal elements zero (like as in the example), the program fails to find eigenvectors but can find eigenvectors (which is expected since it is third degree polynomial). The expression for the eigenvalues is ofcourse quite hectic. And when I try to calculate eigenvectors it gives the error

Warning: basis of eigenspace for eigenvalue - 1/2*((c^2*d^2*e^2 -...
Error: Unable to find eigenvectors. [mleigenvectors]
Error in ==> sym.eig at 74
S = mupadfeval('mleigenvectors',A);

I am using matlab R2009a. Is this a problem that can be solved by for instance R2009b or better servers or it is just to many calculations to try? This does not seem plausible to me since if you take the above matrix subtract LI (where K is for eigenvalue I is id matrix) from it and try to solve the eigenvector equation, you can even solve it by hand to get expressions containing L, a,b,c,e,f,g. Then what you have to do is to simply put in expressions for lambda. However ofcourse the result will be very long so I am wondering if this is some memory issue?

Thanks

4

1 回答 1

0

我在 2012a 和 2010a 32bit 中进行了测试,两者都运行良好。

有趣的是,2012a 用了 0.2s,而 2010a 用了 0.3s。如果以下方法不起作用,我会怀疑存在内部错误,因为它们确实会大量更新符号处理。

tic; syms a c b e f; A=[a c 0;c b e;0 e f]; [V,D]=eig(A); toc;

搜索证实这是 2008 年的问题......

http://www.mathworks.com/matlabcentral/newsreader/view_thread/263921

实际上,史蒂文,在这种情况下,多项式确实简化为三次。Matlab symbolic 确实找到了特征值,但它在特征向量上失败了(使用我的 Matlab 2008b)

EDU>> 值=eig(A); EDU>>简化(值)

答案=

(too long to show)

但是向量失败了:

EDU>> [向量,值]=eig(A); 警告:特征值的特征空间基础 1/3*a + 1/3*b + 1/3*c + (4/9*a^2 - 1/9*a*b - 1/9*a*c + 1/9*b^2 + 2/9*b*c + 1/9*c^2)/(4/9*a*b^2 + 1/9*a^2*b - 1/18* a*c^2 + 1/9*a^2*c - 7/18*b*c^2 + 1/9*b^2*c - 8/27*a^3 + 1/27*b^ 3 + 1/27*c^3 + (- 1/3*a^4*b^2 - 10/27*a^4*b*c - 1/27*a^4*c^2 + 1/ 9*a^3*b^3 + 2/9*a^3*... [linalg::eigenvectors] ??? 错误使用 ==> mupadfeval 在 28 错误:无法找到特征向量。[mleigenvectors]

==> sym.eig 中的错误在 74 S = mupadfeval('mleigenvectors',A);

我在 Mathematica 上尝试了同样的方法,它找到了特征向量,(我认为它们是正确的;),这是结果(太大而无法在此处发布)

于 2012-12-09T05:33:17.880 回答