I am constructing an eigenvalue problem of the form

$$[R]{c} = \lambda [F]{c}$$

The matrices are populated by the results of some integrals

$$ I_{i,j} = \int f(x,y,i,j) dxdy \quad for \quad i=1,..,N \quad j=1,...,M $$

All the numbers are coming out wrong the eigenvalues are nonsensical and do not converge as the matrices get larger, they just get larger in turn, and I am trying to troubleshoot. I noticed that $[F]$ always is singular. I added some "salt" ($1e-10$) so that the program did not rebel on me but I am thinkning that this might indicate some deeper issue about my problem formulation/computation, although I am not really sure what.

So my question is: Does the fact that $[F]$ is singular, point to any such problems and if yes how should I go about correcting it? Furthermore any advice on where to focus the troubleshooting?


  • $\begingroup$ Your issue is about the so-called "generalized eigenvalue problem". See paragraph 7.3 in en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix. $\endgroup$ – Jean Marie Nov 22 '18 at 11:25
  • $\begingroup$ I would try at first to convert your issue into the eigenvalue problem $F^+Rc=\lambda c$ where $F^+$ is the pseudo-inverse of $F$. $\endgroup$ – Jean Marie Nov 22 '18 at 11:29
  • 1
    $\begingroup$ I am trying to find the lowest value that would cause buckling on a composite plate. This would be the lowest eigenvalue, and the program should converge on that solution as the matrices get larger. Here is a sample $R$ matrix: Here an F matrix: $\endgroup$ – Tristan Greenwood Nov 24 '18 at 17:25
  • 1
    $\begingroup$ $$R = \begin{array}{cccc} 0.8334971 & 4.17815877 & 13.86869435 & 34.56910269\\ 4.63449654 & 13.83872632 & 33.52342807 & 69.92804483\\ 16.28196565 & 35.93753681 & 69.83052589 & 126.14788633\\ 41.73478583 & 78.23144509 & 132.15137615 & 216.12985001\\ \end{array} $$ $\endgroup$ – Tristan Greenwood Nov 24 '18 at 17:39
  • 1
    $\begingroup$ Typical (singular) F matrix $$ F = \begin{array}{cccc} 2.4674011 & 2.4674011 & 2.4674011 & 2.4674011\\ 9.8696044 & 9.8696044 & 9.8696044 & 9.8696044\\ 22.2066099 & 22.2066099 & 22.2066099 & 22.2066099\\ 39.4784176 & 39.4784176 & 39.4784176 & 39.4784176\\ \end{array} $$ $\endgroup$ – Tristan Greenwood Nov 24 '18 at 17:54

I don't see how I can mark a comment as the correct answer but after much pain and tears, using the pseudo-inverse matrix as suggested by Jean Marie yielded the best results. Not completely there yet, the resulting eigenvalues are always what I am looking for divided by 2 for some reason, but it's getting there.


If $F$ is rank one (as in the example you gave) the generalized eigenproblem

$$Rc=\lambda Fc \tag{1}$$

has indeed (according to you terms) a "deeper" issue.

Indeed, if $F$ is rank one, we can write it under the form :

$$F=C \mathbb{U}^T \ \tag{2}$$

with $C$ any column of $F$, (e.g. $2.4, 9.8,22.2,39.4$ in the example you have given) and $ \mathbb{U}$ the column vector of $\mathbb{R^4}$ with null entries.

Thus (1) becomes $Rc=\lambda C(\mathbb{U}^T c)$ ; as parentheses enclose in fact a number, one gets $Rc=\mu C$ for a certain $\mu$ ; otherwise said (provided $R$ is invertible):

$$c=\mu R^{-1}C \ \tag{3}$$

giving a a unique family of (generalized) eigenvectors ($\mu$ has no constraint on it).

Having an eigenvector, it is of course easy to get the corresponding eigenvalue.

Remark : in fact, of course, this reasoning works as well in nD.

  • $\begingroup$ $ \mu = \lambda (U^{T}c)$ ? $\endgroup$ – Tristan Greenwood Nov 26 '18 at 11:47
  • $\begingroup$ Yes, exactly... $\endgroup$ – Jean Marie Nov 26 '18 at 18:18
  • $\begingroup$ Has my answer been satisfying for you ? $\endgroup$ – Jean Marie Dec 19 '18 at 21:19
  • $\begingroup$ The final answer has not been much of a help to be honest, but the suggestion of the pseudoinverse has helped a lot, mainly since I was not aware of its existence sadly. After a lot more tweaking on different parts of the code it yielded the best results. Thank you very much for taking all this time to help $\endgroup$ – Tristan Greenwood Jan 9 at 10:55
  • $\begingroup$ I understand. Nevertheless, there was another side in my contribution : the remark that your matrix has identical columns (= rank one). $\endgroup$ – Jean Marie Jan 9 at 11:12

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.