In Mathematica, they are normalized so that Euclidean norm of
each is 1
--------------------------
In[120]:= k = {{300, 100}, {100, 200}};
m = {{4, 1.}, {1, 3}};
{lam, phi} = Eigensystem[{k, m}];
phi = Transpose[phi];
Norm[phi[[;; , #]]] & /@ Range[2]
Out[124]= {1., 1.}
------------------------
But it is more common, at least in engineering and modal analysis,
is to "mass" normalize them. when the eigenvectors are mass normalized,
then phi'*m*phi will give the identity matrix and phi'*k*phi will
give a diagonal matrix with square of the eignevalues (lam here) on
the diagonal.
This is what that "other" software does by default:
----------------
EDU>> m=[4 1;1 3];
EDU>> k=[300 100;100 200];
EDU>> [phi,lam]=eig(k,m);
EDU>> phi.'*m*phi
1.0000 0.0000
-0.0000 1.0000
EDU>> phi.'*k*phi
58.0179 -0.0000
0.0000 78.3458
EDU>> phi
0.3406 -0.3958
-0.5512 -0.2446
-------------------------
But it is easy to make the Mathematica eigenvectors be mass normalized.
Simply find phi'*M*phi for each eigenvector and call this mu. Then
divide each phi by mu. This gives you the "mass" normalized eigenvector.
---------------------------
phi[[1 ;; All, #1]]/
Sqrt[phi[[1 ;; All, #1]].m.phi[[1 ;; All, #1]]] & /@ Range[2]
Out[135]= {{-0.395843, -0.244644},
{0.34064, -0.551167}}
In[139]:= phii.m.Transpose[phii] // Chop
Out[139]= {{1., 0}, {0, 1.}}
In[140]:= phii.k.Transpose[phii] // Chop
Out[140]= {{78.3458, 0}, {0, 58.0179}}
-------------------------
--Nasser