打开实时脚本 计算几乎等于特征值的 sigma 数值附近的特征值。 矩阵 A = delsq(numgrid('C',30)) 是一个大小为 632 的对称正定矩阵,特征值合理分布在区间 (0 8) 中,但是在 4.0 处有 18 个重复的特征值。要计算 4.0 附近的一些特征值,尝试函数调用 eigs(A,20,4.0) 是合理的。然而,此调用计算 A - 4.0*I 的逆矩阵的最大特征值,其中 I 是单位矩阵。由于 4.0 是 A 的特征值,此矩阵为奇异矩阵,因此没有逆矩阵。eigs 失败并生成错误消息。sigma 的数值不能精确等于特征值。必须使用接近但不等于 4.0 的 sigma 值来求这些特征值。 使用 eig 计算所有特征值,使用 eigs 计算 20 个最接近 4 - 1e-6 的特征值,然后比较结果。绘制按照每一种方法计算的特征值。 A = delsq(numgrid('C',30));
sigma = 4 - 1e-6;
d = eig(A);
D = sort(eigs(A,20,sigma));plot(d(307:326),'ks')
hold on
plot(D,'k+')
hold off
legend('eig(A)','eigs(A,20,sigma)')
title('18 Repeated Eigenvalues of A')
|