happycharleswang
happycharleswang

Reputation: 75

a very ill conditioned linear system

I have a linear system to solve, written as Ax=b A is a 175 by 175 symmetric square, with ones at it's diagonal (i.e., aii=1), and other entries ranges from 0 to 1(i.e., 0

A is very ill conditioned, and not positive definite, its rank is 162 and its condition number is 3.5869e+16

I spent several days to solve this in MATLAB, I've tried almost every method I can find, including \, pcg, bicg, bicgstab, bicgstabl, cgs, gmres, lsqr, minres, qmr, symmlq, tfqmr These methods gave me some solutions. But I don't know how to trust them, or which solution to trust. Is there a criteria to determine?

I'll appreciate someone who can give me a solution that I can trust. Thanks!

A and b are stored in .mat files and can be download from dropbox links:

https://www.dropbox.com/s/s6xlbq68juqs6xi/A.mat?dl=0

https://www.dropbox.com/s/pxl0hdup20hf2lr/b.mat?dl=0

use like this:

load('A.mat');

load('b.mat');

x = A\b;

Upvotes: 3

Views: 1236

Answers (1)

Ander Biguri
Ander Biguri

Reputation: 35525

Not sure if this will help, but give it a go:

Tikhonov regularization

Basically, when the following is hard to compute due to ill-conditiones:

enter image description here

You minimize the following instead

enter image description here

Being \Gamma generally the identity matrix.

In the end, you get the following equation for x:

enter image description here

To add to that, you will generally want to add an "hyperparameter", to control how much you regularize the problem. So \Gamma instead of being just the identity matrix, it will be a number (i.e. 0.001) multiplied by the identity matrix of size(A).

The last equation should be straightforward to try in Matlab. Give it a go.

NOTE: this is not the answer. Actually probably there is no unique answer to solving an ill posed problem. This is just a way to go.

Upvotes: 3

Related Questions