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
- 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.
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!
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!
New method singgep for finite regular eigenvalues of a singular GEP with several numerical examples.
M.E. Hochstenbach, C. Mehl, B. Plestenjak: Solving singular generalized eigenvalue problems by a rank-completing perturbation, arXiv:1805:07657
Improved subspace methods for 3-parameter problems and numerical examples from M.E. Hochstenbach, K. Meerbergen, E. Mengi, B. Plestenjak, Subspace methods for 3-parameter eigenvalue problems, arXiv:1802:07386. All methods now support multiprecision.
Support for multiprecision using Advanpix Multiprecision Computing Toolbox. Default in twopareigs is twopareigs_ks, that now works for complex matrices as well. Methods from DMSUITE are replaced by methods that support multiprecision. Improved TRQI.
Updated Jacobi-Davidson for 2EP and 3EP, option of faster (and less accurate) rank revealing QR instead of SVD for singular MEPs, new aerolastic flutter examples, minor corrections and updates, output of rank choices and gaps for singular MEPs
Updated description of the toolbox with an acknowledgement to Andrej Muhič and a list of references. Updated references in some files.
New methods for two- and three-parameter eigenvalue problems with large matrices. Support for singular problems with three or more parameters. Tensor Rayleigh quotient iteration generalized to three or more parameters. Construction of Delta matrices.
Create scripts with code, output, and formatted text in a single executable document.