egttools.numerical.linear_operator¶
Matrix-free linear operator wrappers and stationary-distribution solvers.
Provides: - Factory functions that wrap a PairwiseComparisonTransitionOperator as
scipy LinearOperator objects for iterative eigensolvers and Krylov solvers.
stationary_distribution_from_sparse: convenience solver for an explicit sparse transition matrix (e.g. from PairwiseComparison.calculate_transition_matrix).
Example usage¶
>>> import numpy as np
>>> from egttools.games import NormalFormGame
>>> from egttools.numerical import PairwiseComparisonTransitionOperator
>>> from egttools.numerical.numerical_ import PairwiseComparison
>>> from egttools.numerical.linear_operator import (
... make_transition_operator, make_residual_operator,
... stationary_distribution_from_sparse)
>>>
>>> # Matrix-free path (no Python callbacks)
>>> game = NormalFormGame(...)
>>> op = PairwiseComparisonTransitionOperator(
... population_size=50, game=game, beta=1.0, mu=0.01)
>>> pi = op.compute_stationary_distribution() # power iteration
>>> pi = op.compute_stationary_arpack() # ARPACK (if compiled)
>>>
>>> # Explicit-sparse path (best for moderate state spaces)
>>> pc = PairwiseComparison(50, game)
>>> P = pc.calculate_transition_matrix(beta=1.0, mu=0.01)
>>> pi = stationary_distribution_from_sparse(P)
Functions
Find k eigenvalues and eigenvectors of the square matrix A. |
|
Wrap a PairwiseComparisonTransitionOperator as a scipy LinearOperator for (I - P^T). |
|
Wrap a PairwiseComparisonTransitionOperator as a scipy LinearOperator for P^T. |
|
Compute the stationary distribution of an explicit sparse transition matrix. |
Classes
Common interface for performing matrix vector products |