在matlab中确定矩阵的特征值何时为正

时间:2016-03-28 03:14:19

标签: matlab eigenvalue

我试图找到K的值,使得下面的矩阵具有带有正实部的任何特征值,但我一直在胡说八道。有什么更好的方法呢?

K = 0;
A = [  0 1 0; 0 0 1; -K -2 -3];

while K < 10
    e = eig(A);
    A = [  0 1 0; 0 0 1; -K -2 -3 ];
        if any(real(e)) > 0
            K
            break;
        end
    K = K + 1/100;    
end

1 个答案:

答案 0 :(得分:0)

阐述@TroyHaskin的评论,这是一个使用上述问题的特征多项式的解决方案。

请注意,上面的特征多项式由

给出
-x^3 - 3x^2 - 2x - K

解决here。在matlab中使用上面的等式和roots,很容易找到满足约束条件的解决方案

>> roots([-1, -3, -2, 0])

ans =

     0
    -2
    -1

>> roots([-1, -3, -2, 1])

ans =

  -1.6624 + 0.5623i
  -1.6624 - 0.5623i
   0.3247 + 0.0000i

这表明对于K=1,你有一个具有严格正实部的特征值。