Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Polynomial eigenvalue problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg58737] Re: Polynomial eigenvalue problem
  • From: "Alan" <info at optioncity.REMOVETHIS.net>
  • Date: Sat, 16 Jul 2005 01:03:45 -0400 (EDT)
  • References: <200507150702.DAA23070@smc.vnet.net> <db8v7b$3ql$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

>> (A_0 + lambda A_1 + lambda^2 A_2 + ... + lambda^p A_p) x = 0,
>>
>> where:
>> p is a given integer,
>> each coefficients A_i is a given N x N (real or complex) square matrix.

> eigs = Sort[NSolve[Det[mat]]];
>
> Get corresponding eigenvectors by using NullSpace:
>
> eigvecs = Join @@ NullSpace /@ (mat /. Union[eigs]);
>
> The Sort and Union commands are there in case there are repeated
> eigenvalues.

Hi Carl,

Thanks so much for your very elegant method.
Since my original post, I came to understand there was a fairly
basic linearization method and coded that up as well as your approach.
Linearization took me about 10 lines of codes, as
opposed to your `one liners'.

I tried some random matrix data. Agreement was perfect
between your approach and my linearization method
for p = 5 and N = 10, using the notation at the top for p and N.
However, the running time for the linearization was
quite a bit faster, which surprised me.

Then, I couldn't get your method to work for N > 10
even though the basic linearization approach seemed
fine. For N >= 12, your method never returned.
At first, I thought that perhaps just NSolve was slow and
so replaced it with Roots//N. This did not help.

Upon further investigation, it seems that
(i) the (partially symbolic) Det[mat] would never return for N >= 12.
For N = 11, Det[mat] would return, but
(ii) the NullSpace operator would not always
return a list of Dimension {p N, 1, N}. Instead,
NullSpace would return some empty {} entries and this would break
the method.

As I like your compact notation, if you agree with these problems,
I wonder if you have some suggestions to overcome them?

regards,
alan 



  • Prev by Date: refining expression in terms of real numbers
  • Next by Date: Re: Light and surface colors
  • Previous by thread: Re: Polynomial eigenvalue problem
  • Next by thread: Re: Polynomial eigenvalue problem