File Exchange

image thumbnail


version (204 KB) by Bor Plestenjak
Toolbox for multiparameter eigenvalue problems


Updated 24 May 2018

View Version History

View License

This is a joined work with Andrej Muhič, who wrote part of the code, in particular the staircase algorithm for a singular multiparameter eigenvalue problem. If you use the toolbox to solve a singular MEP, please cite: A. Muhič, B. Plestenjak: On the quadratic two-parameter eigenvalue problem and its linearization, Linear Algebra Appl. 432 (2010) 2529-2542.
Toolbox contains numerical methods for multiparameter eigenvalue problems (MEPs)
A matrix two-parameter eigenvalue problem (2EP) has the form
A1*x = lambda*B1*x + mu*C1*x,
A2*y = lambda*B2*y + mu*C2*y,
and we are looking for an eigenvalue (lambda,mu) and nonzero eigenvectors x,y. A 2EP is related to a pair of generalized eigenvalue problems
Delta1*z = lambda*Delta0*z,
Delta2*z = mu*Delta0*z,
where Delta0, Delta1 and Delta2 are operator determinants
Delta0 = kron(C2, B1) - kron(B2, C1)
Delta1 = kron(C2, A1) - kron(A2, C1)
Delta2 = kron(A2, B1) - kron(B2, A1)
and z = kron(x,y). The 2EP is nonsingular when Delta0 is nonsingular. This can be generalized to 3EP and MEP.
In many applications a PDE has to be solved on a domain that allows the use of the method of separation of variables. In several coordinate systems separation of variables applied to the Helmholtz, Laplace, or Schrödinger equation leads to a MEP, some cases are Mathieu’s system, Lamé’s system, and a system of spheroidal wave functions. A generic two-parameter boundary value eigenvalue problem has the form

p1(x1) y1''(x1) + q1(x1) y1'(x1) + r1(x2) y1(x1) = lambda s1(x1) y1(x1) + mu s2(x2) y1(x1),
p2(x2) y2''(x2) + q2(x2) y2'(x2) + r2(x2) y2(x2) = lambda s2(x2) y2(x2) + mu s2(x2) y2(x2),

where x1 in [a1,b1] and x2 in [a2,b2] together with the boundary conditions. Such system can be discretized into a matrix 2EP, where a good method of choice is the Chebyshev collocation.

Functions in the toolbox can:

- compute Delta matrices for a MEP
- solve a nonsingular or singular MEP with arbitrary number of parameters (the limitation is the size of the corresponding Delta matrices),
- compute few eigenpairs of a 2EP using implicitly restarted Arnoldi or Krylov-Schur method,
- compute few eigenpairs of a 2EP or 3EP using the Jacobi-Davidson or the subspace iteration method
- refine an eigenpair using the tensor Rayleigh quotient iteration
- discretize a two- or three-parameter boundary value eigenvalue problem with the Chebyshev collocation into a 2EP or 3EP,
- solve a quadratic 2EP,
- find finite regular eigenvalues of a singular pencil using rank-completin perturbations,
- most of the methods support multiprecision using Advanpix Multiprecision Computing Toolbox.

Main functions in the toolbox

- twopareig: solve a 2EP (set options to solve a singular 2EP)
- twopareigs: few eigenpairs using implicitly restarted Arnoldi or Krylov-Schur method
- twopareigs_si: subspace iteration with Arnoldi expansion
- twopareigs_jd: Jacobi-Davidson method
- trqi: tensor Rayleigh quotient iteration
- twopar_delta: Delta matrices

- threepareig: solve a 3EP (set options to solve a singular 3EP)
- threepareigs: few eigenpairs using implicitly restarted Arnoldi method
- threepareigs_si: subspace iteration with Arnoldi expansion
- threepareigs_jd: Jacobi-Davidson method
- trqi_3p: tensor Rayleigh quotient iteration
- threepar_delta: Delta matrices

- multipareig: solve a MEP (set options to solve a singular MEP)
- trqi_np: tensor Rayleigh quotient iteration
- multipar_delta: Delta matrices

Two and three-parameter boundary differential equations:
- bde2mep: discretizes two-parameter BDE as a two-parameter matrix pencil using the Chebyshev collocation
- bde3mep: discretizes three-parameter BDE as a three-parameter matrix pencil using the Chebyshev collocation

Quadratic two-parameter eigenvalue problem:
- quad_twopareig: eigenpairs of a Q2EP
- linearize_quadtwopar: linearize Q2EP as a linear two-parameter matrix pencil

Other applications:
- double_eig: lambda such that A+lambda*B has a multiple eigenvalue
- singgep: finite regular eigenvalues of a singular GEP

See folder Examples with many demos. In particular:
- folder BdeMep contains numerical examples from: B. Plestenjak, C.I. Gheorghiu, M.E. Hochstenbach: Spectral collocation for multiparameter eigenvalue problems arising from separable boundary value problems, J. Comp. Phys. 298 (2015) 585-601.
- folder SingGep contains numerical examples from: M.E. Hochstenbach, C. Mehl, B. Plestenjak: Solving singular generalized eigenvalue problems by a rank-completing perturbation, arXiv:1805:07657.
- folder Subspace3 contains numerical examples from: M.E. Hochstenbach, K. Meerbergen, E. Mengi, B. Plestenjak: Subspace methods for 3-parameter eigenvalue problems, arXiv:1802:07386.

See Contents.m for references for the methods and please cite an appropriate reference if you use the toolbox in your paper.

Cite As

Bor Plestenjak (2021). MultiParEig (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (7)

Koen Ruymbeek

Bor Plestenjak

Dear bo, Jacobi-Davidson method cannot be used to solve a singular MEP. The only methods available at the moment for a singular MEP are twopareig, threepareig and multipareig with option singular. These are direct methods that try to compute all eigenvalues and are (unfortunately) suitable only for small MEPs.


Thanks so much for this awesome toolbox!
I have one question: How to solve a MEP (set options to solve a singular MEP) with Jacobi-Davidson method.
I've learned the Jacobi-Davidson method for 2EP or 3EP. But I did not find a numerical example of using JD method to solve the singular multi-parameter eigenvalue problem. Until now I still can't solve this problem by myself. I sincerely hope you can help me.
Thanks so much for your help!


Bor Plestenjak

Dear foboo, you need two such equations to form a two-parameter eigenvalue problem. If you have only one equation p(x,y)=det(A+B*x+C*y)=0, then solutions are curves (x,y) and not points. The methods in the toolbox can only be applied to a problem where you have two bivariate polynomials p(x,y), q(x,y) and you want to find the solutions of p(x,y)=0 and q(x,y)=0. For this case, see, e.g., demo_bivariate.m in folder Examples\SingularMep


Thanks so much for this awesome toolbox!
I have one question: How to solve the following eigenvalue problem with this toolbox ?
det( A +B*x + C*y )=0
which actually originates from finding the roots of a bi-variate polynomial p(x,y)?
I have already figured out that I can obtain the A,B,C matrices from the polynomial representation via "bipoly_detrep", but how to continue from here?

Thanks so much for your help!

Pavel Holoborodko

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: DMSUITE, lapack

Inspired: BiRoots

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!