ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> scipy-dev
scipy-dev
Re: [SciPy-dev] ARPACK wrapper
by Nils Wagner other posts by this author
Nov 20 2006 6:58AM messages near this date
Re: [SciPy-dev] ARPACK wrapper | Re: [SciPy-dev] ARPACK wrapper
Nils Wagner wrote:
>  Aric Hagberg wrote:
>    
> > On Mon, Nov 20, 2006 at 09:45:47AM +0100, Nils Wagner wrote:
> >   
> >     
> >> Hi Neilen,
> >>
> >> In order to compare the results with the workhorse eig I have used a
> >> very small
> >> order n. The number of desired eigenpairs is equal to k=4 in my example,
> >> but the
> >> shape of the array of eigenvectors is (n,k+1) and for the eigenvalues it
> >> is (k+1,).
> >> The eigenvectors returned by arpack.eigen are zero.
> >>
> >> Nils
> >>     
> >>       
> > Hi Nils,
> >
> > The size of the return arrays are intentional (k+1).  This is 
> > the way ARPACK returns eigenvalues and eigenvectors for nonsymmetric
> > matrices.  I think the idea is that the k'th eigenvalue
> > (largest, smallest, etc) might be a complex conjugate pair and
> > then you might want k+1 (the conjugate).  Else, if the k'th
> > eigenvalue is real that entry is zero.   
> >
> > I can run your test example successfully.  Do the tests in
> > arpack/tests/test_arpack.py work for you?  
> >
> > Aric
> >
> >  
> >
> > _______________________________________________
> > Scipy-dev mailing list
> > Scipy-dev@[...].org
> > http://projects.scipy.org/mailman/listinfo/scipy-dev
> >   
> >     
>  help (arpack.eigen) yields
>  eigen(A, k=6, M=None, ncv=None, which='LM', maxiter=None, tol=0,
>  return_eigenvectors=True)
>      Return k eigenvalues and eigenvectors of the matrix A.
> 
>      Solves A * x[i] = w[i] * x[i], the standard eigenvalue problem for
>      w[i] eigenvalues with corresponding eigenvectors x[i].
> 
>      Inputs:
> 
>      A --  A matrix, array or an object with matvec(x) method to perform
>            the matrix vector product A * x.  The sparse matrix formats
>            in scipy.sparse are appropriate for A.
> 
>      k -- The number of eigenvalue/eigenvectors desired
> 
>      M -- (Not implemented)
>            A symmetric positive-definite matrix for the generalized
>            eigenvalue problem A * x = w * M * x
> 
>      Outputs:
> 
>      w -- An array of k eigenvalues
> 
>      v -- An array of k eigenvectors, k[i] is the eigenvector corresponding
>           to the eigenvector w[i]
> 
>  This info doesn't match with your explanation.
> 
>  Concerning the tests I get
> 
>  /usr/bin/python
>  /usr/lib64/python2.4/site-packages/scipy/sandbox/arpack/tests/test_speigs.py
>    Found 1 tests for __main__
> 
>   _naupd: Number of update iterations taken
>   -----------------------------------------
>      1 -    1:    17
> 
> 
>   _naupd: Number of wanted "converged" Ritz values
>   ------------------------------------------------
>      1 -    1:     4
> 
> 
>   _naupd: Real part of the final Ritz values
>   ------------------------------------------
>      1 -    4:   1.033E+00   7.746E-01   5.164E-01   2.582E-01
> 
> 
>   _naupd: Imaginary part of the final Ritz values
>   -----------------------------------------------
>      1 -    4:   0.000E+00   0.000E+00   0.000E+00   0.000E+00
> 
> 
>   _naupd: Associated Ritz estimates
>   ---------------------------------
>      1 -    4:   4.508E-17   7.450E-22   7.087E-26   4.834E-29
> 
> 
> 
>       =============================================
>       = Nonsymmetric implicit Arnoldi update code =
>       = Version Number:  2.4                      =
>       = Version Date:    07/31/96                 =
>       =============================================
>       = Summary of timing statistics              =
>       =============================================
> 
> 
>       Total number update iterations             =    17
>       Total number of OP*x operations            =    59
>       Total number of B*x operations             =     0
>       Total number of reorthogonalization steps  =    58
>       Total number of iterative refinement steps =     0
>       Total number of restart steps              =     0
>       Total time in user OP*x operation          =     0.004000
>       Total time in user B*x operation           =     0.000000
>       Total time in Arnoldi update routine       =     0.008000
>       Total time in naup2 routine                =     0.008000
>       Total time in basic Arnoldi iteration loop =     0.004000
>       Total time in reorthogonalization phase    =     0.000000
>       Total time in (re)start vector generation  =     0.000000
>       Total time in Hessenberg eig. subproblem   =     0.000000
>       Total time in getting the shifts           =     0.000000
>       Total time in applying the shifts          =     0.000000
>       Total time in convergence testing          =     0.000000
>       Total time in computing final Ritz vectors =     0.000000
> 
>  .
>  ----------------------------------------------------------------------
>  Ran 1 test in 0.107s
> 
>  OK
> 
> 
>  /usr/bin/python
>  /usr/lib64/python2.4/site-packages/scipy/sandbox/arpack/tests/test_arpack.py
>    Found 5 tests for __main__
>  .....
>  ----------------------------------------------------------------------
>  Ran 5 tests in 0.039s
> 
>  OK
>   
>  Nils
> 
> 
>  _______________________________________________
>  Scipy-dev mailing list
>  Scipy-dev@[...].org
>  http://projects.scipy.org/mailman/listinfo/scipy-dev
>    
Hi Aric,

Please can you run the following
 
I get something like

 _naupd: Number of update iterations taken
 -----------------------------------------
    1 -    1:    61


 _naupd: Number of wanted "converged" Ritz values
 ------------------------------------------------
    1 -    1:     0


 _naupd: Real part of the final Ritz values
 ------------------------------------------

 _naupd: Imaginary part of the final Ritz values
 -----------------------------------------------

 _naupd: Associated Ritz estimates
 ---------------------------------


     =============================================
     = Nonsymmetric implicit Arnoldi update code =
     = Version Number:  2.4                      =
     = Version Date:    07/31/96                 =
     =============================================
     = Summary of timing statistics              =
     =============================================


     Total number update iterations             =    61
     Total number of OP*x operations            =   225
     Total number of B*x operations             =     0
     Total number of reorthogonalization steps  =   118
     Total number of iterative refinement steps =     0
     Total number of restart steps              =     0
     Total time in user OP*x operation          =     0.008002
     Total time in user B*x operation           =     0.000000
     Total time in Arnoldi update routine       =     0.020002
     Total time in naup2 routine                =     0.020002
     Total time in basic Arnoldi iteration loop =     0.008002
     Total time in reorthogonalization phase    =     0.000000
     Total time in (re)start vector generation  =     0.000000
     Total time in Hessenberg eig. subproblem   =     0.008000
     Total time in getting the shifts           =     0.000000
     Total time in applying the shifts          =     0.004000
     Total time in convergence testing          =     0.000000
     Total time in computing final Ritz vectors =     0.000000

Traceback (most recent call last):
  File "eigs1.py", line 11, in ?
    w1,v1 = arpack.speigs.eigvals(matvec,a.shape[0],nev=nev,ncv=ncv)
  File
"/usr/lib64/python2.4/site-packages/scipy/sandbox/arpack/speigs.py",
line 71, in eigvals
    if info != 0: raise "Hell" # Indicates some error during the
Arnouldi iterations
Hell
Thread:
Neilen Marais
Nils Wagner
Neilen Marais
Nils Wagner
Neilen Marais
Aric Hagberg
Nils Wagner
Nils Wagner
Aric Hagberg

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved