Computing real normal modes from complex eigenvectors

I'm trying to get the normal modes of a system of springs and dasphots using the basic dynamic equations for a linear, damped elastic structure:

$M \ddot{u}(t) + C \dot{u}(t) + K u(t) = f(t)$

to get the normal modes, the following QEP (quadratic eigenvalue problem) must be solved

$(\lambda^2M+\lambda C+K)\bar{\psi}$ = 0

This problem can be solved by linearization, converting it in a generalized eigenvalue problem, that leads in general to complex eigenvectors.

How can I convert this complex eigenvectors to real ones, representing the real displacements of each mode of the structure? Is there any library that implements this functionality?

• "We can then take the first $n$ components of $z$ as the eigenvector $x$ of the original quadratic $Q ( λ )$" from Wikipedia – nicoguaro Sep 13 '18 at 14:49
• @nicoguaro Yes, but that gives complex eigenvectors, I'm talking of a way of transforming those into real ones. – Msegade Sep 13 '18 at 16:24
• Even in the linear eigenvalue problem you (might) have complex eigenvectors. – nicoguaro Sep 13 '18 at 16:57
• You can't "convert" complex eigenvectors to real. The eigenvectors are complex because you have damping in your model. If you want to calculate traditional vibration modes for this model, set the damping matrix to zero. – Bill Greene Sep 13 '18 at 18:59
• @BillGreene But I want vibration modes that take damping into consideration. With traditional modes I get an eigenvector that I can represent (say for example (1, -1) in a 2DOF system. With complex eigenvectors it gives something like (1+2j, 0.5 -1j) which I cannot represent. I'm looking for a way to make sense of this eigenvectors by transforming them into real modes. – Msegade Sep 17 '18 at 16:36

When you find the eigenvalues $\lambda_n$ and corresponding eigenvectors $u_n$, some of them might be pairs of complex-conjugated eigenvectors $u_n=v_n\pm iw_n$ that correspond to complex-conjugated eigenvalues $\lambda_n=a_n\pm ib_n$.
In general, the modes associated with an eigenvalue and its eigenvector can be found as $$x_n(t)=e^{\lambda_n t}\,u_n$$ Now for the case of complex-conjugated pairs of eigenvalues and vectors, choose only one pair of them and substitute them in the above relation. For instance, let's take $$\lambda_n=a_n+ib_n,$$ $$u_n=v_n+iw_n$$ Notice that you could just as well choose the eigenvalue and vector with the "$-$" instead of the "$+$". Then plugging them in the relation for the mode $x_n(t)$ and simplifying (use Euler's formula for complex numbers and do some algebra) you find that $$x_n(t)=e^{(a_n+ib_n)t}\,(v_n+iw_n)\Rightarrow$$ $$\Rightarrow x_n(t)=e^{a_nt}[\cos(b_nt)v_n-\sin(b_nt)w_n]+ie^{a_nt}[\sin(b_nt)v_n+\cos(b_nt)w_n]$$