smooth eigenvector

• To: mathgroup at smc.vnet.net
• Subject: [mg51577] smooth eigenvector
• From: acsl at dee.ufrj.br (Antonio Carlos Siqueira)
• Date: Sat, 23 Oct 2004 00:22:15 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

Dear All
I have to calculate the eigenvector/values of a matrix wich varies
with the frequency, as a result some eigenvalues switch places between
frequency samples causing the eigenvector to switchover. In fact even
when the eigenvalues do not switch among themselves I find a
switchover as any complex number times a eigenvector is still a
suitable eigenvector. This behavior is troublesome as I need to fit
the eigenvectors as a smooth frequency functions. To obtain smooth
eigenvectors I can use FindRoot, using the eigenvalue and eigenvector
equations and imposing the constraint that the module of any
eigenvector is 1, Apply[Plus,V^2]-1==0, where V is an eigenvector. One
problem is that this procedure is very time consuming, around 50 times
slower than conventional eigensystem. Wouldn´t be a way to avoid this
switchover using Eigensystem?
Below there is a sample of my humble code

Do[{w = 2 Pi f[[nm]],
eq1 = Append[(Prod[w] - x*IdentityMatrix[6]).V, -1 + Apply[Plus,
V^2]],
sol = FindRoot[eq1, xvar],
lambda[[nm]] = x /. sol,
Tvsc[[nm]] = Flatten[Table[v[i] /. sol, {i, 1, 6}]],
var = Join[Table[{v[i], Tvsc[[nm]]}, {i, 1, 6}], {{x,
lambda[[nm]]}}]}, {nm, 2, nf}]]