Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top
  1. The simple problem eigenvalues problem defined as: $A-(x^2)*B = 0$, where $A$ and $B$ are matrices. How to use command Eigenvalues[] in Mathematica to find $x$, but not this way Det[A-(x^2)*B]=0 because in help I saw 4 examples but just when $B$ is identity matrix or something like this?

  2. If the matrices $A$ and $B$ are large example $100 \times 100$, and I don't need all solutions $x$, how to use command FindRoot[] to get just first few positive solutions, example first two positive roots, and combine with eigenvalues?

  3. Can command SchurDecomposition[] can help me for this problem and how?

Thank you in advance.

share|cite|improve this question
You do know that Eigenvalues[], CharacteristicPolynomial[], and SchurDecomposition[] are all capable of handling the generalized problem, right? (Try Eigenvalues[N[{{{4, 2}, {2, 4}}, {{3, 2}, {2, 3}}}]], for instance.) What version are you using? – J. M. Oct 8 '11 at 13:21
For #2: Eigenvalues[N[{{{4, 2}, {2, 4}}, {{3, 2}, {2, 3}}}], 1] works... – J. M. Oct 8 '11 at 13:22
Thank you very much. It is working. When the command SchurDecomposition[] can help? Than you very much again! – George Oct 8 '11 at 15:02
But if I am using Eigenvalues[N[{A, B},1]] I got the highest value, but I need the first positive? – George Oct 8 '11 at 15:34
Unless you say what $A$ and $B$ look like (e.g. symmetric, sparse), I don't think I can be more helpful... – J. M. Oct 8 '11 at 15:38
up vote 2 down vote accepted

To settle this:

  1. Mathematica is quite capable of computing the eigenvalues of matrix pencils (i.e., the generalized eigenproblem). Eigenvalues[]/Eigenvectors[]/Eigensystem[], as well as CharacteristicPolynomial[] and SchurDecomposition[], are all able to handle matrix pencils, as long as the matrix contains inexact elements. For instance:

    Eigenvalues[{{{4, 2}, {2, 4}}, {{1, 3}, {3, 1}}} // N]
    {1.5, -1.}
  2. Eigenvalues[] and its cognate functions are capable of returning the first few or last few eigencomponents by taking a second integer parameter. Eigenvalues[{matA, matB}, 3] for instance means "return the three largest (in magnitude) eigenvalues", and Eigenvalues[{matA, matB}, -1] means "return the tiniest eigenvalue".

  3. SchurDecomposition[] is an eigenvalue-revealing decomposition. For a pencil $(\mathbf A,\mathbf B)$, SchurDecomposition[] finds four matrices $\mathbf Q,\mathbf S,\mathbf P,\mathbf T$ such that $\mathbf A=\mathbf Q\mathbf S\mathbf P^{\dagger}$ and $\mathbf A=\mathbf Q\mathbf T\mathbf P^{\dagger}$, with $\mathbf Q,\mathbf P$ unitary/orthogonal and $\mathbf S,\mathbf T$ upper (quasi-)triangular (depending on the setting of the option RealBlockDiagonalForm), and $\dagger$ denoting a Hermitian (conjugate) transpose.

There are applications where it is better to have a Schur decomposition than an eigendecomposition (and a Schur decomposition certainly takes less effort to compute, as well as less susceptible to numerical instability). Which of the eigendecomposition or the Schur decomposition should you use depends on what you really want to do, which you haven't mentioned...

share|cite|improve this answer
The problem can be very big matrices A and B. So I need just first eigenvalue, maybe two, three and because of that I thought that Schur decomposition can help. Here is the link where are the matrices A and B for problem A−(x^2)∗B=0 – George Oct 8 '11 at 16:42
Not very helpful; you pasted the large output warning, not the actual matrices themselves... – J. M. Oct 8 '11 at 16:55
Ok, now it is better thing here. I need to extract just few first positive solutions. Not to calculate all and spending the time. – George Oct 8 '11 at 20:43

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.