PseudoPy computes and visualizes the pseudospectrum of a matrix. It is a Python version of the original eigtool by Thomas G. Wright. The algorithms used in this package can be found in the book Spectra and pseudospectra by Nick Trefethen and Mark Embree.
The pseudospectrum of the Grcar matrix looks like this:
The above figure can be created with the following lines of code:
from pseudopy import NonnormalMeshgrid, demo
from matplotlib import pyplot
from scipy.linalg import eigvals
# get Grcar matrix
A = demo.grcar(32).todense()
# compute pseudospectrum
pseudo = NonnormalMeshgrid(A,
real_min=-1, real_max=3, real_n=400,
imag_min=-3.5, imag_max=3.5, imag_n=400)
# plot
pseudo.plot([10**k for k in range(-4, 0)], spectrum=eigvals(A))
pyplot.show()
pip install pseudopy
Note that you may need to add sudo
if you want to install it system-wide.
PseudoPy is free software licensed under the MIT License.