I have an eigenvalue problem emerging from the internal vibro-acoustic coupling.

The eigenvalue problem is nonsymmetric but it was proven in literature that it results in real eigenvalues and eigenvectors due to the relations between the off-diagonal coupling matrices. The eigenvalue problem reads as,

$$A \phi = \lambda B \phi$$


$$ A = \begin{bmatrix} K_1 &K_2\\ 0 &K_3\end{bmatrix}$$


$$ B = \begin{bmatrix} M_1 &0\\ -K_2^T &M_2\end{bmatrix}$$

I am using the Arnoldi technique to solve this eigenvalue problem. However, I always have to apply a scaling in order to find the right eigenvalues and eigenvectors. What I am applying is the simple jacobi scaling such as

P1 = diag(1./sqrt(diag(K1)))
P2 = diag(1./sqrt(diag(K2)))

P = diag(P1,P2)

eventually, what I am solving is the generalized eigenvalue problem with this scaling matrix, namely,

$$ P A P = \begin{bmatrix} P_1 K_1 P_1 &P_1 K_2 P_2\\ 0 &P_2 K_3 P_2\end{bmatrix}$$


$$ P B P = \begin{bmatrix} P_1 M_1 P_1 &0\\ -P_2 K_2^T P_1 &P_2 M_2 P_2\end{bmatrix}$$

then I go back to the original space before scaling. It is fine up to this point but there is one more follow up step I would like to accomplish. Later on, I need to solve a linear system which involves $A$, such as,

$$A x = b$$

and I would like to use the factor I generated during the above eigenvalue solution in order to perform this solution. But if I perform the scaling, my original $A$ transforms to $PAP$ so I can not use that for a forward-backward solve and I need a new factorization for $A$.

And as mentioned above, I can only find the right eigenvalues and eigenvectors with this scaling although my original matrices are not that ill-conditioned. I am looking for a way to solve my eigenvalue problem without scaling and use the available factorization at a later stage, but so far, I have no luck without scaling. I am using the built in solvers (or the Factorize package from Tim Davies) in my MATLAB implementations for the Arnoldi iterations.

Any help/idea is greatly appreciated on what I can try to solve this problem without scaling.

  • 1
    $\begingroup$ What happens if you simply try to solve the eigenvalue problem with the eigs function? $\endgroup$ Jun 24 '17 at 13:01
  • $\begingroup$ @BillGreene, yes, it is possible and gives the right values. It is an option but if you look at the original matrix, there is a large 0 block in A and I am using this fact for independent factorizations of K1 and K3 blocks for the solution of the problem, eigs is not aware of this useful property. $\endgroup$
    – Umut Tabak
    Jun 24 '17 at 13:22
  • $\begingroup$ Could you add the reference to the paper you mention in the beginning? $\endgroup$
    – user21
    Jun 26 '17 at 14:34
  • $\begingroup$ If you define $A$ as a sparse matrix, then eigs does know about the zero off-diagonal block. On the other hand, if you do have a more efficient approach to factorizing $A$, eigs lets you supply a function where you can apply this factorization. $\endgroup$ Jun 27 '17 at 14:05
  • $\begingroup$ @BillGreene, ok, thanks for this comment, I have never thought on this point. $\endgroup$
    – Umut Tabak
    Jun 28 '17 at 5:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.