Thread Subject: Question: Eigenvalue Problem

Subject: Question: Eigenvalue Problem

From: Alexander Baehr

Date: 20 Apr, 2001 12:14:36

Message: 1 of 3


Hello everybody,

here's the problem matrix:

        -300 1 0
A = -30000 0 -1
        -10^6 0 0


It is the result of an eigenvalue assignment to a control system, so I'm
not guilty for it.

MATLAB computes a triple eigenvalue (eig(A)) at -100, but a conditional
number (cond(A)) of 10^6. Also, the solution function x(t) for

dx/dt = A * x
x(0) = x0

shows a large overshoot in all three dimensions, which normally
indicates complex eigenvalues.

Has anybody got an idea where the computation problem is? Has anybody
software that computes different eigenvalues?

Thank you in advance.
Please answer by mail, I will post the answers

Alexander

Subject: Question: Eigenvalue Problem

From: Ronald Bruck

Date: 21 Apr, 2001 10:52:42

Message: 2 of 3

In article <3AE00C0C.68C53E6C@srt.tu-darmstadt.de>,
 Alexander Baehr <abaehr@srt.tu-darmstadt.de> wrote:

:Hello everybody,
:
:here's the problem matrix:
:
: -300 1 0
:A = -30000 0 -1
: -10^6 0 0
:
:
:It is the result of an eigenvalue assignment to a control system, so I'm
:not guilty for it.
:
:MATLAB computes a triple eigenvalue (eig(A)) at -100, but a conditional
:number (cond(A)) of 10^6. Also, the solution function x(t) for
:
:dx/dt = A * x
:x(0) = x0
:
:shows a large overshoot in all three dimensions, which normally
:indicates complex eigenvalues.
:
:Has anybody got an idea where the computation problem is? Has anybody
:software that computes different eigenvalues?

Not only complex, but big (in absolute value):

  -100 + 100*2^(1/3)
  -100 - 50*2^(1/3) + 50*I*2^(1/3)*Sqrt[3]
  -100 - 50*2^(1/3) - 50*I*2^(1/3)*Sqrt[3]

which numerically are

  25.992104989487302
 -162.99605249474365 + 109.1123635971721*I
 -162.99605249474365 - 109.1123635971721*I

If you used these eigenvalues you probably wouldn't even NOTICE the
effect of the complex ones. On the other hand, exp(26t) is rather
nasty. Is this supposed to be physically meaningful?

Obtained using Mathematica; as for a numerical package which would
handle such a poorly scaled matrix, well... No idea. I suppose you
could compute them at extended precision and then round back to double.
Will MATLAB do that on a PC? (Using 80-bit "temporary" precision?)
What about an HP, with quad-precision?

Or you could look at the Gnu Multi-Precision Library. But you'll have
to reinvent the wheel. Or--MuPad, surely?! You should be able to find
it easily :-)

--Ron Bruck

--
Due to University fiscal constraints, .sigs may not be exceed one
line.

Subject: Question: Eigenvalue Problem

From: kovarik@mcmail.cis.McMaster.CA (Zdislav V. Kovarik)

Date: 21 Apr, 2001 15:04:06

Message: 3 of 3

[My second reply, from a different angle:]

In article <3AE00C0C.68C53E6C@srt.tu-darmstadt.de>,
Alexander Baehr <abaehr@srt.tu-darmstadt.de> wrote:
:
:Hello everybody,
:
:here's the problem matrix:
:
: -300 1 0
:A = -30000 0 -1
: -10^6 0 0
:
:
:It is the result of an eigenvalue assignment to a control system, so I'm
:not guilty for it.
:
:MATLAB computes a triple eigenvalue (eig(A)) at -100, but a conditional
:number (cond(A)) of 10^6. Also, the solution function x(t) for
:
:dx/dt = A * x
:x(0) = x0
:
:shows a large overshoot in all three dimensions, which normally
:indicates complex eigenvalues.
:
:Has anybody got an idea where the computation problem is? Has anybody
:software that computes different eigenvalues?

A typo, presumably in A(3,1): the triple eigenvalue
(-100) comes from

A =

[ -300 1 0
      -30000 0 -1
     1000000 0 0 ]

Now A = (-100)*I + B, where I = eye(3,3),

B =

[ -200 1 0
      -30000 100 -1
     1000000 0 100 ]

is a nilpotent matrix:

B^2 =

[ 10000 -100 -1
     2000000 -20000 -200
  -100000000 1000000 10000 ]

and B^3 = zeros(3,3).

The (fundamental) solution of

dF(t)/dt = A*F(t), F(0)=I

is

F(t) = exp(t*A)

     = exp(-100*t) * (I + t * B + (t^2/2) * B^2)

and now you can see where the "overshoot" comes from.

About perturbations: If B is nilpotent of index p,
that is, B^(p-1) is not 0 but B^p = 0, then (some)
eigenvalues of B+H for small "generic" H lie
approximately at the vertices of a regular p-gon
centered at 0, of radius of order of magnitude
(norm(H))^(1/p). This can be explained more
precisely using Weierstrass's Preparation Theorem.

(OK, numerical perturbations coming from rounding and
truncation are hardly "generic", but MATLAB experiments
with high-order nilpotents with integer entries do
exhibit this regularity.)

Hence an explanation why, in the presence of approximate
calculations, some computed eigenvalues of an allegedly
nilpotent (or shifted nilpotent) matrix end up being
non-real.

Hope some of it helps,
ZVK(Slavek).

Tags for this Thread

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

rssFeed for this Thread

Contact us at files@mathworks.com