Matrix Solvers for High Condition Numbers

Suppose I wish to solve the following square system of equations:

$$A x = b$$

• Suppose that $A$ is modestly large and sparse (problem size $\sim 10^{3-4}$).
• Suppose that $A$ is banded primarily along the diagonal, but is not quite diagonally-dominant.
• Suppose also that the condition number of $A$ is quite large — say, $\kappa(A) \equiv \frac{|\lambda_{max}|}{|\lambda_{min}|} > 10^{12}$. (In some cases, it's above $10^16$.)

I've used a number of direct solvers: truncated SVD, SVD with Tikhonov regularization, Gaussian elimination, LU decomposition, and even MATLAB's mldivide() (that is, A\b). They all give significantly different results. When using truncated SVD, I find that between 10-20% of the singular values were below MATLAB's default tolerance.

I've implemented a few iterative methods: Gauss-Seidel, Gauss-Seidel with successive over-relaxation, and "block-form" Gauss-Seidel. Each of these methods diverged. Upon closer inspection, I discovered that the matrix didn't satisfy the convergence criteria for any of these methods ($\rho(M^{-1} N) < 1$), so I shouldn't have expected them to converge.

I'm running out of options!

What other approaches are appropriate for this kind of matrix problem? Are there any that specialize in dealing with high condition numbers?

• My matrix comes from a finite difference discretization of a 2D PDE. This is why the matrix is banded. In terms of theory, the problem is well-posed, and should be solvable to within an additive constant ($x_i$ and $x_i+c$ are both solutions). If I specify the uniqueness constant, the problem should have a unique solution, but then the matrix is $N \times (N+1)$, so some algorithms cannot be used. – jvriesem Feb 9 '17 at 23:29
• It seems that you need a very high precision or exact entries (and exact calculation). If the condition is that bad and the matrix that large, numerical approaches with moderate precision must fail. – Peter Feb 9 '17 at 23:34
• Where are the entries for this matrix and the right hand side coming from? Are any of them measured values? How accurate an instrument are you using? – Brian Borchers Feb 9 '17 at 23:51
• @BrianBorchers: The entries on the RHS are the values of analytically-computed derivatives of a known equation. The derivatives in the matrix are 2nd-order finite difference approximations of derivatives of the solution. Perhaps the derivatives need to be calculated the same way on each side? – jvriesem Feb 9 '17 at 23:58
• Unless your matrix entries and right hand side entries are accurate to 15 digits or more (which as you've just indicated they're not) there's no way to produce an accurate solution to the intended system of equations. You need to start by regularizing your problem so that it isn't so ill conditioned. – Brian Borchers Feb 10 '17 at 0:10