bugGNU Octave - Bugs: bug #41624, pcg fails to converge with...

 
 

bug #41624: pcg fails to converge with preconditioner luinc

Submitted by:  None
Submitted on:  Mon 17 Feb 2014 03:56:13 PM UTC  
 
Category:  Octave Function Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Wont Fix Assigned to:  None
Originator Name:  Originator Email:  -email is unavailable-
Open/Closed:  Closed Release:  3.8.0
Operating System:  GNU/Linux

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Thu 26 Nov 2015 12:29:35 AM UTC, comment #3: 

I think the problem here is due both to the particular matrix and the particular options passed to ilu.  The best suggestion is to explore the many possible options of ilu until you find a set that works for your particular problem.

Closing report.

Rik <rik5>
Project Administrator
Mon 17 Feb 2014 10:50:43 PM UTC, comment #2: 

I tested both scripts with Matlab R2012b on Linux and it succeeds after one iteration with luinc and fails even with 15000 iterations when using ilu like you suggest.
This seems very strange considering that in theory (without rounding errors) cg should converge to the EXACT solution after at most 1599 steps.

Anonymous
Mon 17 Feb 2014 09:45:52 PM UTC, comment #1: 

I checked your code on Matlab R2013b for Mac OS X. I found out that luinc has been removed from Matlab, anyway an equivalent script:

A=[...]
b = ones(size(A,1),1);
b = A'*b;
A = A'*A;
setup.droptol = 0;
[l, u] = ilu(A,setup);
pcg(A,b,1e-8,size(A,1),l,u,[]);

yields the following output:

pcg stopped at iteration 1599 without converging to the desired tolerance 1e-08
because the maximum number of iterations was reached.
The iterate returned (number 1219) has relative residual 0.26.

Eugenio Gianniti <eg123>
Mon 17 Feb 2014 03:56:13 PM UTC, original submission:  

I do the following:
A = [...]
b = ones(size(A,1),1);
b = A'*b;
A = A'*A;
[l, u] = luinc(A,0);
pcg(A,b,1e-8,size(A,1),l,u,[])

With a matrix A that is not very "difficult", but unfortunately very large, it can be seen here: http://paste.debian.net/plain/82538
With Matlab it converges very fast, i.e.
"pcg converged at iteration 1 to a solution with relative residual 5.1e-10"
while under octave it fails to converge to anything useful and tells me:
warning: matrix singular to machine precision, rcond = 1
warning: attempting to find minimum norm solution
warning: pcg: maximum number of iterations (1599) reached

warning: the initial residual norm was reduced 0.354462 times.

warning: pcg: matrix not positive definite?

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rik5 (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-11-26 rik5 StatusNone => Wont Fix
        Open/ClosedOpen => Closed

    Back to the top


    Powered by Savane 3.5