octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: new snapshot?


From: Michael D. Godfrey
Subject: Re: new snapshot?
Date: Fri, 26 Feb 2010 17:34:18 -0800
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.8) Gecko/20100216 Thunderbird/3.0.2

On 2/26/10 2:28 PM, John W. Eaton wrote:
On 26-Feb-2010, Michael D. Godfrey wrote:

| On 2/26/10 10:15 AM, Jaroslav Hajek wrote:
| > Are you sure? This is exactly the opposite of what I get. Sometimes
| > the assert fails with
| >
| > !!!!! test failed
| > assert (s (k:-1:1),s2,1e-10) expected
| >     38.060
| >     38.060
| >     38.034
| >     38.034
| >     38.015
| >     38.015
| >     38.004
| > but got
| >     38.060
| >     38.034
| >     38.034
| >     38.015
| >     38.015
| >     38.004
| >     38.004
| > maximum absolute error 0.0263523 exceeds tolerance 1e-10
| >
| > and the latter result is correct, AFAIK.
| >
| >    
| The latter result is s2  in the test.  This is what I get too.  s2, 
| computed from:
| [u2,s2,v2,flag] = svds(a,k,0);
| s2 = diag(s2);
| is correct.  It is the "expected" vector that is wrong.  This comes from:
| a = 
| sparse([3:n,1:n,1:(n-2)],[1:(n-2),1:n,3:n],[ones(1,n-2),0.4*n*ones(1,n),ones(1,n-2)]);
| [u,s,v] = svd(full(a));
| s = diag(s);
| [dum, idx] = sort(abs(s));
| s = s(idx);
| 
| Agree?

The problem is with svds, not svd on the full matrix.  I should have
put the arguments to assert in the opposite order.

Sorry for the confusion,

jwe
  
I read the help svds text which says:

 Note that for relatively small values of
     SIGMA, there is the chance that the requested number of singular
     values are not returned.  In that case SIGMA should be increased.

and tried [u2,s2,v2,flag] = svds(a,k,0.05);  instead of [u2,s2,v2,flag] = svds(a,k,0);

at line 222 of svds.m.  This causes make check to pass, and the standalone
version also still works.  It is still a mystery why the make check fails.

Michael


reply via email to

[Prev in Thread] Current Thread [Next in Thread]