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

 
 

bug #41624: pcg fails to converge with preconditioner luinc

Submitter:  None
Submitted:  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 Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

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>
Group 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)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group 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.13-758e.
    Corresponding source code