Solve real symmetric or complex hermitian band matrix eigenvalue problem.
Find eigenvalues w and optionally right eigenvectors v of a:
a v[:,i] = w[i] v[:,i]
v.H v = identity
The matrix a is stored in a_band either in lower diagonal or upper diagonal ordered form:
a_band[u + i - j, j] == a[i,j] (if upper form; i <= j) a_band[ i - j, j] == a[i,j] (if lower form; i >= j)
where u is the number of bands above the diagonal.
Example of a_band (shape of a is (6,6), u=2):
upper form:
* * a02 a13 a24 a35
* a01 a12 a23 a34 a45
a00 a11 a22 a33 a44 a55
lower form:
a00 a11 a22 a33 a44 a55
a10 a21 a32 a43 a54 *
a20 a31 a42 a53 * *
Cells marked with * are not used.
Parameters : | a_band : array, shape (u+1, M)
lower : boolean
eigvals_only : boolean
overwrite_a_band: :
select: {‘a’, ‘v’, ‘i’} :
select_range : (min, max)
max_ev : integer
|
||||||||
---|---|---|---|---|---|---|---|---|---|
Returns : | w : array, shape (M,)
v : double or complex double array, shape (M, M)
Raises LinAlgError if eigenvalue computation does not converge : |