Hello,

I am considering a 12 element bar. I computed the stiffness and mass matrices using the FE method.

I am assuming that the displacement of node 13 is related to the displacement of node 1 by the following relation: u13=x.u1 where x=exp(kR+i.kI)

I want to solve the following eigenvalue problem : det(Tt(lambda^2M+K)T)=0 where T is the transformation matrix for the node displacements

numele=12; numdof=numele+1;

T = Array[KroneckerDelta, {numdof, numdof - 1}];

T = ReplacePart[T, {numdof, 1} -> x];

Print["Transformation Matrix", T // MatrixForm]

Lambda is a complex frequency , i.e lambda=LR+i*wd.

I want to find kR and kI in terms of LR and wd, below is my iteration code

For[\[Lambda]R = 0, \[Lambda]R <=

1.1, \[Lambda]R = \[Lambda]R + 0.1,

For[\[Omega]d = 0, \[Omega]d <= 6, \[Omega]d = \[Omega]d + 0.5;

sol = (Solve[Det[(-\[Lambda]R + I*\[Omega]d)^2*Mstar + Kstar] == 0,

x][[1]]);

x = x /. sol;

Print[x];

kR = Re[x];

kI = Im[x];

realp = AppendTo[realp, kR]; imp = AppendTo[imp, kI];

]];

(Kstar=Transpose.K.T; Mstar=Transpose.M.T)

Since the equation det(A)=0 has 3 solutions, I am only considering the first one to start.

I want to be able to get the real part and imaginary part of x for the two iterations (one over LRand the other over wd) and plot them functions of wd and LR.

If i do Print, it gives me all the solutions, but when I try to do x=x/.sol in order to be able to getRe and Im i get an error with the Replace all command:

ReplaceAll::reps: "{False} is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing. "

I am new to Mathematica and the documentation didn't help me solve my problem.

Thanks in advance for your answers.

Clémence