错误信息:警告:矩阵接近奇异或严重了。结果可能是不准确的。RCOND = 2.078506 e-18。
28日视图(30天)
显示旧的评论
你好,我想要运行这段代码,的值在某个点D_g会无穷。有什么我可以帮忙的吗?
th = 0:10:90;
林= 3:0.01:7;
lp = 0.168;lc = 8.932;
ep = 1 - ((lam。^ 2。* lc) / (lp。^ 2 * (lc - 1我。* lam)));
呃=实际(ep);
eim =图像放大(ep);
ng =√6 (0.5 * (√(er。^ 2) + (eim ^ 2)) + er));
0.5公斤=√* (√(er。^ 2) + (eim ^ 2)) - er));
nkg = ng + 1我*公斤;
dg = 0.01;
为z = 1:长度(th)
为j = 1:元素个数(lam)
phig (z, j) = 2π*。* (dg. /林(j)。*√(ng (j) - 1我*公斤(j))。^ 2 -信德(th (z) ^ 2));
kgx (z, j) = (2。* pi. /林(j)。*√(ng (j) - 1我*公斤(j))。^ 2 -信德(th (z) ^ 2));
Dg = [kgx (z, j) / nkg (j) -kgx (z, j) / nkg (j);nkg (j) -nkg (j)];
D_g =发票(Dg)
结束
结束
0评论
答案(2)
Abhijeet
2023年5月30日在56
你好,
D_g的值将无穷在某个点,因为这个矩阵的行列式Dg是equalt或接近于零。
你可以解决这个问题通过添加一个条件检查计算“D_g”之前,检查如果Dg矩阵的行列式为零/接近于零。如果是零,“D_g”分配给南或其他合适的值表明/修复错误。
这是修改后的代码,供您参考:
th = 0:10:90;
林= 3:0.01:7;
lp = 0.168;lc = 8.932;
ep = 1 - ((lam。^ 2。* lc) / (lp。^ 2 * (lc - 1我。* lam)));
呃=实际(ep);
eim =图像放大(ep);
ng =√6 (0.5 * (√(er。^ 2) + (eim ^ 2)) + er));
0.5公斤=√* (√(er。^ 2) + (eim ^ 2)) - er));
nkg = ng + 1我*公斤;
dg = 0.01;
为z = 1:长度(th)
为j = 1:元素个数(lam)
phig (z, j) = 2π*。* (dg. /林(j)。*√(ng (j) - 1我*公斤(j))。^ 2 -信德(th (z) ^ 2));
kgx (z, j) = (2。* pi. /林(j)。*√(ng (j) - 1我*公斤(j))。^ 2 -信德(th (z) ^ 2));
Dg = [kgx (z, j) / nkg (j) -kgx (z, j) / nkg (j);nkg (j) -nkg (j)];
如果abs(侦破(Dg)) < 1 e-6%检查奇点
%处理或跳过这个值的计算j
继续;
其他的
D_g =发票(Dg);
结束
结束
结束
另外,您也可以尝试添加一个小常数矩阵的对角线Dg。你可以做到这一点通过添加一个小值ε的对角矩阵。
这可以通过修改代码:
Dg = [kgx (z, j) / nkg (j) -kgx (z, j) / nkg (j);nkg (j) -nkg (j)];
ε= 1 e-6;%小恒定值
Dg = +ε*眼(大小(Dg));%小值添加到对角线
D_g =发票(Dg);
谢谢! !