[SciPy-user] generalized eigenvalue problem for sparse matrices

Abhinav Sarkar abhinav.sarkar at gmail.com
Tue Apr 15 02:48:50 EDT 2008


abhinav sarkar <abhinav.sarkar <at> gmail.com> writes:

> 
> Hi
>   I am trying to solve a generalized eigenvalue problem for sparse
>  matrices. The problem is in form
>     A*x = 𝜎*M*x
>  where A and M are sparse matrices and x is a vector and sigma is a
>  scalar whose value is to be found.
> 
>  For this I am using the Arpack function ARPACK_gen_eigs provided in
>  the module scipy.sparse.linalg.eigen.arpack.speigs . However the
>  solution which I am getting does not match with the solution obtained
>  from the eig function in MATLAB. For example:
> 
>  A = [1 0 0 -33 16 0; 0 1 0 16 -33 16; 0 0 1 0 16 -33; 1601 -96 256
>  -1800 0 0; -96 1601 -96 0 -1800 0; 256 -96 1601 0 0 -1800]
>  M = [0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 0 1; -33 16 0 0 0 0; 16 -33 16
>  0 0 0; 0 16 -33 0 0 0]
> 
>  The matrices are written in MATLAB format, spaces separating the row
>  elements and ";" separating the rows.
>  When I solve this problem in MATLAB using the function eig, I get the
>  following eigenvalues:
>  -155.0345, -56.9898, -45.2209, -31.9376, -28.5367, -9.1611
> 
>  However when I solve it using ARPACK_gen_eigs to find the two
>  eigenvalues near 10, I get the following solution:
>  13.83675153-1.71439075j, 13.83675153+1.71439075j
>  which is certainly not correct.
>  --
>  Abhinav Sarkar


I tried the eigenvalue problem solver provided for the dense matrices at
scipy.linalg.eig and it gives the same result as the MATLAB functin eig. Then
why is scipy.sparse.linalg.eigen.arpack.speigs.ARPACK_gen_eigs giving different
result? Please help me out.

Regards
---
Abhinav Sarkar




More information about the SciPy-User mailing list