-1
$\begingroup$

I am trying to find eigenvalues for a big matrix having symbolic elements. Basically I am trying to find values of lambda for which matrix $(A-\lambda)$ is singular. For small matrices, we generally find the determinant and then solve the characteristic equation using Newton Raphson method (FindRoot) to find various eigenvalues. In my cases the matrices are huge so finding determinant takes forever. Is there another way in which I can find eigenvalues for, let's say, 500*500 matrix? I have posted a little code for 51*51 matrix. I am not interested in finding all eigenvalues, I just need smallest 10-20 eigenvalues. Any and all help would be appreciated.

W = (BesselJ[m, λ*r/a] - BesselJ[m, λ]/BesselI[m, λ]*
      BesselI[m, λ*r/a])*(Subscript[A, m]* (Subscript[A, m]*Cos[m*θ] + Subscript[B, m]*Sin[m*θ])

R1 = a^2*(D[W, {r, 2}] + 0.3 (1/r*D[W, r] + 1/r^2*D[W, {θ, 2}])) /. r -> a ;
R2 = a*(D[W, r]) /. r -> a ;

N1 = 37;
N2 = 13;

For[i = 1; n1 = 1, i < N1 + 1, i++,
Subscript[G, i] = 
Sum[R2 /. θ -> α*(m*n1)/(N1 + 1) /. α -> Pi/
 2, {m, 0, (N1 + N2)/2}];
 n1 = i;
]

For[j = 0; n2 = 0, j < N2 + 1, j++,
Subscript[F, j] = 
Sum[R1 /. θ -> 
  m*(α + (2*Pi - α)*n2/N2) /. α -> Pi/2, {m, 
0, (N1 + N2)/2}];
n2 = j;
]

Edit

Apologies, There has been some issue with the code which has been corrected.

$\endgroup$
  • 1
    $\begingroup$ Have you tried using either Eigenvalues or Eigensystem? Especially if you have a symbolic matrix that might be preferred over a numerical solution. $\endgroup$ – gothicVI Dec 18 '18 at 8:36
  • $\begingroup$ Yes, they take very long time and usually doesn't work beyond 13*13 matrices. $\endgroup$ – R Vic Dec 18 '18 at 12:46
  • $\begingroup$ Another possibility would be to try to find the NullSpace of (A-$\lambda$ I). $\endgroup$ – bill s Dec 18 '18 at 17:04
5
$\begingroup$

Computing eigenvalues of a $500 \times 500$ matrix is only feasible for very rare matrices with very special structure since the complexity of symbolic terms tend to blow up very fast. Moreover, with symbols, it will often not be possible to order the eigenvalues. So the short answer can be found here.

It might be a better strategy to substitute numerical values (in floating point precision) and to apply Eigenvalues or Eigensystem afterwards. In the very special cases mentioned above, you might find a pattern and a mathematical proof for it.

$\endgroup$
  • 3
    $\begingroup$ The formulæ for the eigenvalues will be so complicated that knowing them is not useful at all. $\endgroup$ – Marius Ladegård Meyer Dec 18 '18 at 12:12
  • $\begingroup$ So, should I try hit and trial method to find eigenvalues? I have an inkling at what range eigenvalues would lie but substituting numerical values would consume a lot of time. $\endgroup$ – R Vic Dec 18 '18 at 12:51

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.