病态严重的线性系统

时间:2015-08-06 13:42:08

标签: matlab matrix linear-algebra

我有一个线性系统要解决,写成Ax = b A是175乘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&#39);

负载(' b.mat&#39);

x = A \ b;

1 个答案:

答案 0 :(得分:3)

不确定这是否会有所帮助,但请试一试:

Tikhonov regularization

基本上,当由于病态而难以计算以下内容时:

enter image description here

您最小化以下内容

enter image description here

成为\ Gamma通常是单位矩阵。

最后,您得到x的以下等式:

enter image description here

除此之外,您通常还需要添加一个"超参数"来控制您将问题规范化的程度。所以\ Gamma而不仅仅是单位矩阵,它将是一个数字(即0.001)乘以size(A)的单位矩阵。

在Matlab中尝试最后的等式应该很简单。试一试。

注意:这不是答案。实际上可能没有解决病态问题的独特答案。这只是一种方法。