On Jun 12, 3:09 am, Vinzent Steinberg <vinzent.steinb...@googlemail.com> wrote: > On 11 Jun., 10:47, SherjilOzair <sherjiloz...@gmail.com> wrote: > > > Do you require to solve eigenvalue problems of matrices bigger than > > 4*4 ? > > How are you doing it currently ? > > Matrix.diagonalize only works for matrices smaller than 5*5, as > > polys.roots can only solve degree 4 equations and less. > > This is not entirely true, because we can find roots of higher order > using for examples factorization. But yes, for equations of degree > greater than 4 there is no general algorithm. But this does not matter > in this case, because sympy does not calculate eigenvalues using the > characteristic polynomial AFAIK.
Arbitrary higher-order equations can not be solved. And characteristic polynomial of an arbitrary matrix is arbitrary. This means, that we can't use that method to compute eigenvals reliably. I don't think there are any other direct methods, though. sympy uses this method. def berkowitz_eigenvals(self, **flags): """Computes eigenvalues of a Matrix using Berkowitz method. """ return roots(self.berkowitz_charpoly(Dummy('x')), **flags) eigenvals = berkowitz_eigenvals Or are you referring to something else ? > > Vinzent -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.