Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*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 2004

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

Search the Archive

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}]]

Thanks for your time


Antonio Carlos


  • Prev by Date: Re: More on Delete Problems
  • Next by Date: Re: Piecewise functions
  • Previous by thread: Re: Integration of UnitStep has bugs!? help!
  • Next by thread: f'[t]== x[t]+u[t] ?