smooth eigenvalues and eigenvectors as a function of frequency

• To: mathgroup at smc.vnet.net
• Subject: [mg60312] smooth eigenvalues and eigenvectors as a function of frequency
• From: "Antonio Carlos Siqueira" <acsl at dee.ufrj.br>
• Date: Sat, 10 Sep 2005 22:36:35 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```Dear MathGroup

I am posting this message hoping that someone may have a better idea
than me and point me in some direction to the solution. I have to fit a
complex based function using a state-space approach and thus smooth
eigenvectors and eigenfunctions are needed. Using Eigensystem I
experienced some eigenvector/eigenvalues switchovers (from one
frequency step to the next).
I was wondering whether some sort of MapIndexed or some Sort can do the
trick to switch the eigenvector back. I know that if I can track the
direction of the eigenvalue.eigenvector dot product I might probably
identify the switchover.

Below I show the code I am using and a graph as an example of the
switchover.

Any help/comment is more than welcome!

Regards
Antonio

Here comes the code

evalues = Table[0, {n, 1, nf}];
evectors= evects1;

xc={-9.5, -9.5, -9.5, 9.5, 9.5, 9.5};
yc={26., 38.7, 51.4, 26., 38.7, 51.4};

nc=Length[xc];
compr = 25*10^3;
rf = 0.0203454;
rhoc = 4.169134020401465*^-8;
rhosolo=100.0;

mu = (4.*Pi)/10^7;
epsilon = 8.854/10^12;

freqlog[i_, f_, n_] := Table[N[10^(i + (x*(f - i))/(Floor[n] - 1))],
{x, 0, n - 1}]
length = 25000;
npontos = 20;
d1 = 0; d2 = 6;
f = freqlog[d1, d2, nfd];
nf = Length[f];

Do[{w = 2*Pi*f[[nm]],
p = Sqrt[rhosolo/(I*w*µ)],
etac = Sqrt[(I*w*µ)/rhoc],
Z = Table[If[i != j, ((I*w*mu)*
Log[Sqrt[(xc[[i]] - xc[[j]])^2 + (2*p + yc[[i]] + yc[[j]])^2]/
Sqrt[(xc[[i]] - xc[[j]])^2 + (yc[[i]] - yc[[j]])^2]])/(2*Pi),
((etac*rhoc)*BesselI[0, etac*rf])/((2*Pi*rf)*BesselI[1,
etac*rf]) +
((I*w*mu)*Log[(2*p + 2*yc[[i]])/rf])/(2*Pi)],
{i, 1, ncond}, {j, 1, ncond}],
P = Table[If[i != j,
Log[Sqrt[(xc[[i]] - xc[[j]])^2 + (yc[[i]] + yc[[j]])^2]/
Sqrt[(xc[[i]] - xc[[j]])^2 + (yc[[i]] - yc[[j]])^2]],
Log[(2.*yc[[i]])/rf]], {i, 1, ncond}, {j, 1, ncond}],
Y = I*w*2*Pi*epsilon*Inverse[P],
{ll, T} = Eigensystem[Z . Y],
{evalues[[nm]], evectors[[nm]]} =
Transpose[Sort[Transpose[{ll, T}]]]}, {nm, 1, nf}]]

DisplayTogether[
LogLinearListPlot[Transpose[{f, Re[evectors[[All,3,1]]]}]],

LogLinearListPlot[Transpose[{f, Re[evectors[[All,3,2]]]}]],
LogLinearListPlot[Transpose[{f, Re[evectors[[All,3,3]]]}]],
LogLinearListPlot[Transpose[{f, Re[evectors[[All,3,4]]]}]]

```

• Prev by Date: Re: Condition for pure functions
• Next by Date: Re: Why this function does not return a single value
• Previous by thread: Re: Generate a palette with a FrontEnd Token
• Next by thread: Re: smooth eigenvalues and eigenvectors as a function of frequency