MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] 求助广义特征值求解 (https://www.labfans.com/bbs/showthread.php?t=14413)

haolpk37 2012-03-15 22:38

求助广义特征值求解
 
最近做广义特征值的求解,但是直接利用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的秩变形,不知道有没有准确的方法来判断病态矩阵特征值,谢谢!


所有时间均为北京时间。现在的时间是 04:56

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.