eigensolvers¶
meanas.eigensolvers
¶
Solvers for eigenvalue / eigenvector problems
power_iteration
¶
power_iteration(
operator: spmatrix,
guess_vector: NDArray[complex128] | None = None,
iterations: int = 20,
) -> tuple[complex, NDArray[numpy.complex128]]
Use power iteration to estimate the dominant eigenvector of a matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
operator
|
spmatrix
|
Matrix to analyze. |
required |
guess_vector
|
NDArray[complex128] | None
|
Starting point for the eigenvector. Default is a randomly chosen vector. |
None
|
iterations
|
int
|
Number of iterations to perform. Default 20. |
20
|
Returns:
| Type | Description |
|---|---|
tuple[complex, NDArray[complex128]]
|
(Largest-magnitude eigenvalue, Corresponding eigenvector estimate) |
rayleigh_quotient_iteration
¶
rayleigh_quotient_iteration(
operator: spmatrix | LinearOperator,
guess_vector: NDArray[complex128],
iterations: int = 40,
tolerance: float = 1e-13,
solver: Callable[..., NDArray[complex128]]
| None = None,
) -> tuple[complex, NDArray[numpy.complex128]]
Use Rayleigh quotient iteration to refine an eigenvector guess.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
operator
|
spmatrix | LinearOperator
|
Matrix to analyze. |
required |
guess_vector
|
NDArray[complex128]
|
Eigenvector to refine. |
required |
iterations
|
int
|
Maximum number of iterations to perform. Default 40. |
40
|
tolerance
|
float
|
Stop iteration if |
1e-13
|
solver
|
Callable[..., NDArray[complex128]] | None
|
Solver function of the form |
None
|
Returns:
| Type | Description |
|---|---|
tuple[complex, NDArray[complex128]]
|
(eigenvalues, eigenvectors) |
signed_eigensolve
¶
signed_eigensolve(
operator: spmatrix | LinearOperator,
how_many: int,
negative: bool = False,
) -> tuple[
NDArray[numpy.complex128], NDArray[numpy.complex128]
]
Find the largest-magnitude positive-only (or negative-only) eigenvalues and eigenvectors of the provided matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
operator
|
spmatrix | LinearOperator
|
Matrix to analyze. |
required |
how_many
|
int
|
How many eigenvalues to find. |
required |
negative
|
bool
|
Whether to find negative-only eigenvalues. Default False (positive only). |
False
|
Returns:
| Type | Description |
|---|---|
NDArray[complex128]
|
(sorted list of eigenvalues, 2D ndarray of corresponding eigenvectors) |
NDArray[complex128]
|
|