Quadratic eigenvalue problem and solution (solved in Mathematica)

Click For Summary
SUMMARY

The discussion focuses on solving the quadratic eigenvalue problem defined by the equation ##Q(\lambda) \equiv (\lambda^2 M + \lambda D + K)\vec x = \vec 0##, where ##K, D, M## are ##n \times n## matrices. The user employs a linearization technique using a matrix pencil as outlined in a referenced document. In Mathematica, the user constructs vectors ##\vec \xi_i = [\vec x_i, \lambda \vec x_i]## and solves for eigenvalues ##\lambda_i## through algebraic equations. The user experiences occasional failures in recovering all eigenvalues due to high precision settings in the solver, raising questions about the balance between precision and stability in numerical solutions.

PREREQUISITES
  • Understanding of quadratic eigenvalue problems
  • Familiarity with linearization techniques in numerical analysis
  • Proficiency in using Mathematica for algebraic computations
  • Knowledge of matrix algebra and eigenvalue theory
NEXT STEPS
  • Explore the linearization technique detailed in the referenced document on matrix pencils
  • Investigate the impact of solver precision settings in Mathematica
  • Learn about stability analysis in numerical solutions of polynomial equations
  • Study methods for improving eigenvalue recovery in numerical algorithms
USEFUL FOR

Mathematicians, numerical analysts, and engineers working with eigenvalue problems, particularly those utilizing Mathematica for computational solutions.

member 428835
Hi PF!

Given the quadratic eigenvalue problem ##Q(\lambda) \equiv (\lambda^2 M + \lambda D + K)\vec x = \vec 0## where ##K,D,M## are ##n\times n## matrices, ##\vec x## a ##1\times n## vector, the eigenvalues ##\lambda## must solve ##\det Q(\lambda)=0##.

When computing this, I employ a linearization technique, a simple matrix pencil, outlined page 6 here: http://www.ma.man.ac.uk/~ftisseur/talks/talk_X13.pdf

At the very end of the technique, I have ##n## vectors of length ##1\times 2n##, call these ##\vec \xi_i##. Evidently ##\vec \xi_i = [\vec x_i,\lambda \vec x_i]##, implying ##\vec x_i## is a ##1 \times n ## vector (see hyperlink, it's fairly simple). When I'm solving in Mathematica, once I have each ##\vec \xi_i## I cut it in half, and use an algebra solver, solving for ##\lambda_i## via the equations ##\vec x_i = \lambda_i \vec x_i##. I loop through this for ##i = 1,n##. Most of the time I recover good solutions that output eigenvalues equivalent to ##\det Q(\lambda)=0##. However, occasionally it misses a few, likely because the solver's precision order is too high (remember, its solving ##n## algebraic equations ##\vec x_i = \lambda_i \vec x_i##, which should all be linearly dependent).

To obtain a solution, should I turn down the precision of the solver, or is this ill-advised?
 
Last edited by a moderator:
Physics news on Phys.org
It is always a problem to solve an equation, here ##\det Q(\lambda)=0## numerically. A little variation of inputs and you miss the zero result. Stability is a problem here. If you don't want to analyze the entire algorithm w.r.t. stability, it's probably best to try a few settings as you mentioned and see what you end up with.
 
  • Like
Likes   Reactions: member 428835
fresh_42 said:
It is always a problem to solve an equation, here ##\det Q(\lambda)=0## numerically. A little variation of inputs and you miss the zero result. Stability is a problem here. If you don't want to analyze the entire algorithm w.r.t. stability, it's probably best to try a few settings as you mentioned and see what you end up with.
Thanks! Just wanted to make sure I'm not doing something insane.
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 25 ·
Replies
25
Views
4K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
1K