Matlab符号特征向量

时间:2012-11-29 11:05:44

标签: matlab eigenvector symbolic-computation

我正在尝试计算形式

的矩阵的符号特征值和向量
[ a, c, 0]
[ c, b, e]
[ 0, e, f]
matlab中的

(用一些包含x,y,z的表达式替换a,b,c等)。当我有4个关闭对角线0时,该程序是成功的。但是当矩阵只有两个非对角线元素为零时(如示例中所示),程序无法找到特征向量,但可以找到特征向量(由于它是三次多项式,因此是预期的)。特征值的表达是相当忙碌的。当我尝试计算特征向量时,它会给出错误

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);

我正在使用matlab R2009a。这是一个可以通过例如R2009b或更好的服务器解决的问题,还是只需要进行多次计算?这对我来说似乎不合理,因为如果你把上面的矩阵从它中减去LI(其中K是特征值I是id矩阵)并尝试求解本征向量方程,你甚至可以手工求解它来获得包含L的表达式, A,b,C,E,F,G。那么你要做的就是简单地为lambda添加表达式。但是当然结果会很长,所以我想知道这是否是一些内存问题?

由于

1 个答案:

答案 0 :(得分:0)

我在2012a和2010a 32bit测试过,两者都很好用。

有趣的是,2012a花了0.2秒,而2010a花了0.3秒。如果以下方法不起作用,我会怀疑内部错误,因为它们会严重更新符号处理。

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

  

Actuall Steven,在这种情况下,多项式确实简化为立方体。   Matlab符号确实找到了特征值,但它失败了   特征向量(使用我的Matlab 2008b)

     

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

     

ans =

(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 at   28错误:无法找到特征向量。 [mleigenvectors]

     

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

     

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