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$ – Bill Greene 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$ – Bill Greene 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 acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.