Example matrix generators

These are mainly translations of demonstrations from EigTool.

Note

These functions are not exported.

Pseudospectra.landau_fox_liFunction
landau_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.

source
Pseudospectra.grcarFunction
grcar(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].

source
Pseudospectra.demmelFunction
demmel(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].

source
Pseudospectra.supgFunction
supg(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.

source
Pseudospectra.olmsteadFunction
olmstead(N)

load Olmstead matrix from file (N ∈ {500,1000})

Note

This function requires a Matrix Market file from [http://math.nist.gov/MatrixMarket/data/NEP/olmstead/olmstead.html]

source
Pseudospectra.convdiff_fdFunction
convdiff_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.

source
Pseudospectra.advdiffFunction
advdiff(N,η=0.015)

construct the matrix representing an advection-diffusion operator via Chebyshev collocation.

source
Pseudospectra.orrsommerfeldFunction
orrsommerfeld(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).

source
Pseudospectra.rdbrusselatorFunction
rdbrusselator(N)

load reaction-diffusion Brusselator matrix from file (N ∈ {800,3200})

Note

This function requires a Matrix Market file from [http://math.nist.gov/MatrixMarket/data/NEP/brussel/brussel.html]

source
Pseudospectra.trefethen_tutorialFunction
trefethen_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.

source
Pseudospectra.kahanFunction
kahan(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].

source
  • 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.