Example matrix generators
These are mainly translations of demonstrations from EigTool.
These functions are not exported.
Pseudospectra.landau_fox_li
— Functionlandau_fox_li(N,F)
construct a Landau matrix of rank N for Fresnel number F
The discretization of a Fox-Li operator in the theory of laser cavities by [Landau1977] is one of the earliest applications of pseudospectra.
Pseudospectra.grcar
— Functiongrcar(N)
construct a Grcar non-normal matrix of rank N
This is a popular example in the field of matrix iterations of a matrix whose spectrum is in the right half-plane but whose numerical range is not. It's also a popular example in the study of nonsymmetric Toeplitz matrices. The matrix was first described in [Grcar1989] and its pseudospectra were first plotted in [Trefethen1991].
Pseudospectra.demmel
— Functiondemmel(N,M)
construct Demmel's matrix of rank N with edge value M
Demmel's matrix was perhaps the first matrix whose pseudospectra (with N=3) appeared in [Demmel1987] Demmel devised the matrix in order to disprove a conjecture of Van Loan's [VanLoan1985].
Pseudospectra.supg
— Functionsupg(N)
construct a SUPG matrix for an NxN mesh
The matrix arises from SUPG discretisation of an advection-diffusion operator.
This demo is based on a function by Mark Embree, which was essentially distilled from the IFISS software of Elman and Silvester. See [Fischer1999] and [DJS].
For this example, whilst the eigenvalues computed by eigs are inaccurate due to the sensitivity of the problem, the approximate pseudospectra are very good approximations to the true ones.
Pseudospectra.olmstead
— Functionolmstead(N)
load Olmstead matrix from file (N ∈ {500,1000}
)
This function requires a Matrix Market file from [http://math.nist.gov/MatrixMarket/data/NEP/olmstead/olmstead.html]
Pseudospectra.convdiff_fd
— Functionconvdiff_fd(N)
construct matrix representation of 2-D NxN convection-diffusion operator
convdiff_fd(N) returns matrix C of dimension N^2 representing the operator -ϵ ∇^2 u + ∂u/∂y
on the unit square with Dirichlet boundary conditions. The discretisation is done using finite differences (see, e.g., [Hemmingsson1998]), resulting in large, sparse matrices. The code is based on a routine by Daniel Loghin.
Pseudospectra.advdiff
— Functionadvdiff(N,η=0.015)
construct the matrix representing an advection-diffusion operator via Chebyshev collocation.
Pseudospectra.orrsommerfeld
— Functionorrsommerfeld(N,R=5722,α=1.0)
construct a matrix representing the Orr-Sommerfeld operator in the rank N+1 Chebyshev value-space basis. Note: this imposes a norm of dubious physical meaning, since a clever trick is used to suppress spurious eigenvalues.
[HS1994] W.Z.Huang and D.M.Sloan, "The pseudospectral method for solving differential eigenvalue equations," J. Comput. Phys. 111, 399-409 (1994).
Pseudospectra.rdbrusselator
— Functionrdbrusselator(N)
load reaction-diffusion Brusselator matrix from file (N ∈ {800,3200}
)
This function requires a Matrix Market file from [http://math.nist.gov/MatrixMarket/data/NEP/brussel/brussel.html]
Pseudospectra.trefethen_tutorial
— Functiontrefethen_tutorial(N) -> B,A
compute the matrices used for tutorial purposes in [Trefethen1999]. A
is the Chebyshev discretization of a Schrödinger operator with complex potential. B
includes weight factors so that a basic L2 norm is appropriate.
Pseudospectra.kahan
— Functionkahan(N)
construct Kahan's matrix of rank N
Kahan's matrix [Kahan1966] was devised to illustrate that QR factorisation with column pivoting is not a fail-safe method for determining the rank of the matrix. Rank determination is related to the "distance to singularity" of a matrix [Higham1988], or in other words, how large a perturbation is needed to make the matrix singular. The pseudospectra are shown in [Trefethen1991].
- Landau1977H. J. Landau, "The notion of approximate eigenvalues applied to an integral equation of laser theory", Quart. Appl. Math. 35 (1977), pp. 165-172.
- Grcar1989J. F. Grcar, "Operator coefficient methods for linear equations", tech. report SAND89-8691, Sandia National Labs, 1989
- Trefethen1991L. N. Trefethen, "Psuedospectra of matrices", in "Numerical Analysis 1991" (Dundee 1991), Longman Sci. Tech., Harlow, 1992, 234-266.
- Demmel1987J. W. Demmel, "A counterexample for two conjectures about stability", IEEE Trans. Auto. Control, AC-32, pp. 340-343, 1987.
- VanLoan1985C. Van Loan, "How near is a stable matrix to an unstable matrix?", in R. Brualdi, et al., eds, Contemporary Mathematics 47, Amer. Math. Soc., 1985
- Fischer1999B. Fischer, A. Ramage, D. Silvester and A. Wathen, "Towards Parameter-Free Streamline Upwinding for Advection-Diffusion Problems", Comput. Methods Appl. Mech. Eng., 179, 1999, 185-202.
- DJShttp://www.ma.umist.ac.uk/djs/software.html
- Hemmingsson1998L. Hemmingsson, "A Semi-circulant Preconditioner for the Convection-Diffusion Equation", Numer. Math 81, 211-248 (1998).
- Trefethen1999L.N.Trefethen, "Computation of Pseudospectra", Acta Numerica 1999.
- Higham1988N. J. Higham, "Matrix nearness problems and applications", NA Rep. 161, Dept. of Maths., U. of Manchester, June 1988.
- Kahan1966W. Kahan, "Numerical linear algebra", Canad. Math. Bull. 9, pp. 757-801, 1966.
- Trefethen1991L. N. Trefethen, "Psuedospectra of matrices", in "Numerical Analysis 1991" (Dundee 1991), Longman Sci. Tech., Harlow, 1992, 234-266.