病态线性系统
a very ill conditioned linear system
我有一个线性系统要求解,写为 Ax=b
A 是一个 175 x 175 的对称正方形,在它的对角线上有一个(即 aii=1),其他条目的范围从 0 到 1(即 0
A 条件很差,而且不是正定的,它的等级是 162,它的条件数是 3.5869e+16
我花了几天时间在 MATLAB 中解决这个问题,我几乎尝试了所有我能找到的方法,包括 \, pcg, bicg, bicgstab, bicgstabl, cgs, gmres, lsqr, minres, qmr, symmlq, tfqmr
这些方法给了我一些解决方案。但我不知道如何信任他们,也不知道该信任哪个解决方案。有没有标准可以判断?
如果有人能给我一个我可以信任的解决方案,我将不胜感激。
谢谢!
A 和 b 存储在 .mat 文件中,可以从 dropbox 链接下载:
https://www.dropbox.com/s/s6xlbq68juqs6xi/A.mat?dl=0
https://www.dropbox.com/s/pxl0hdup20hf2lr/b.mat?dl=0
这样使用:
加载('A.mat');
加载('b.mat');
x = A\b;
不确定这是否有帮助,但试一试:
基本上,当以下情况由于条件不当而难以计算时:
您将以下内容最小化
一般是单位矩阵。
最后,你得到 x 的以下等式:
除此之外,您通常需要添加一个 "hyperparameter",以控制问题的正则化程度。所以 \Gamma 不仅仅是单位矩阵,而是一个数字(即 0.001)乘以 size(A)
.
的单位矩阵
最后一个等式应该很容易在 Matlab 中尝试。试试吧。
注意:这不是答案。实际上,解决病态问题可能没有唯一的答案。这只是一条路。
我有一个线性系统要求解,写为 Ax=b A 是一个 175 x 175 的对称正方形,在它的对角线上有一个(即 aii=1),其他条目的范围从 0 到 1(即 0
A 条件很差,而且不是正定的,它的等级是 162,它的条件数是 3.5869e+16
我花了几天时间在 MATLAB 中解决这个问题,我几乎尝试了所有我能找到的方法,包括 \, pcg, bicg, bicgstab, bicgstabl, cgs, gmres, lsqr, minres, qmr, symmlq, tfqmr 这些方法给了我一些解决方案。但我不知道如何信任他们,也不知道该信任哪个解决方案。有没有标准可以判断?
如果有人能给我一个我可以信任的解决方案,我将不胜感激。 谢谢!
A 和 b 存储在 .mat 文件中,可以从 dropbox 链接下载:
https://www.dropbox.com/s/s6xlbq68juqs6xi/A.mat?dl=0
https://www.dropbox.com/s/pxl0hdup20hf2lr/b.mat?dl=0
这样使用:
加载('A.mat');
加载('b.mat');
x = A\b;
不确定这是否有帮助,但试一试:
基本上,当以下情况由于条件不当而难以计算时:
您将以下内容最小化
一般是单位矩阵。
最后,你得到 x 的以下等式:
除此之外,您通常需要添加一个 "hyperparameter",以控制问题的正则化程度。所以 \Gamma 不仅仅是单位矩阵,而是一个数字(即 0.001)乘以 size(A)
.
最后一个等式应该很容易在 Matlab 中尝试。试试吧。
注意:这不是答案。实际上,解决病态问题可能没有唯一的答案。这只是一条路。