确定矩阵的特征值在matlab中何时为正
determine when an eigenvalue of a matrix is positive in matlab
我试图找到 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
详细说明@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
你有一个具有严格正实部的特征值。
我试图找到 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
详细说明@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
你有一个具有严格正实部的特征值。