Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2010-03-04
帖子: 1
声望力: 0 ![]() |
![]()
最近做广义特征值的求解,但是直接利用matlab命令eig无法得到比较好的解,也就是得到inf的特征值。请问有谁碰到过类似的问题吗?十分谢谢!
A=[226000000000.000 0 0 0 0 0 0 0 0 44000000000.0000 -5.80000000000000 -275 0 0 0 0 0 -5.80000000000000 5.64000000000000e-09 5.36700000000000e-12 0 0 0 0 0 -275 5.36700000000000e-12 0.000297000000000000 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 ]; B=[0 -125000000000.000 -2.20000000000000 290.200000000000 -44000000000.0000 0 0 0 -44000000000.0000 0 0 0 0 -216000000000.000 9.30000000000000 350 -5.80000000000000 0 0 0 0 -9.30000000000000 -6.35000000000000e-09 -2.73750000000000e-09 -275 0 0 0 0 -350 -2.73750000000000e-09 -8.35000000000000e-05 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 ]; 另外,matlab中eps可以修改吗? 我在用rank计算上面A的特征值,得到A的特征是为6,显然A的特征值实际是8. 我找到rank的代码是: s = svd(A); if nargin==1 tol = max(size(A)) * eps(max(s)); end r = sum(s > tol); 这是因为eps双精度值 2.220446049250313e-016使得A的秩变形,不知道有没有准确的方法来判断病态矩阵特征值,谢谢! |
![]() |
![]() |