Quantcast
Channel: Math.NET Numerics
Viewing all articles
Browse latest Browse all 971

New Post: Iterative solver experience numerical break down

$
0
0
Hello all,

Following advice on other threads, I am using iterative methods in order to solve a sparse system of equations. The matrix is 40000X40000. If I set the iteration limit to 10000 then I am able to get a solution value, however the resulting residual is highly off from 0. When I increase the iteration limit to 15000 or more, I get "Iterative solver experience numerical break down" error, and process is terminated. I was wondering if this is a common issue and if there is something - an earlier check- I can do to prevent this.

I have already tried with other solvers : TFQMR, GpBiCg ,MlkBiCgStab -I get the same error..
Also I expremented with solver Preconditioners. In that case I get NaN's as solution, regardless of iteration no.
/// Given SparseMatrix A, and DenseVector rhs:
      MathNet.Numerics.Control.DisableParallelization = true;

      BiCgStab solver = new BiCgStab();

    // Choose stop criterias
    var stopCriterias = new List<IIterationStopCriterium>()
    {
        new ResidualStopCriterium(1e-8),
        new IterationCountStopCriterium(15000),
        new DivergenceStopCriterium(),
        new FailureStopCriterium()
    };
    solver.SetIterator(new Iterator(stopCriterias));

    var solution = solver.Solve(A, rhs);

    bool success = false;

    foreach (var item in stopCriterias)
    {
        if (item.StopLevel == StopLevel.Convergence)
        {
            success = true;
            break;
        }
    }

    var residual = A* solution - rhs;


Thanks in advance,

Ahmet

Viewing all articles
Browse latest Browse all 971

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>