# Sorted list of symbolic eigenvalues (and corresponding eigenvectors)

Is there a way to obtain a sorted list of eigenvalues when they are computed symbolically (in SR). Particularly knowing that in specific points, they can switch order.

So far, what I have is (assuming $R^3$):

def sorted_eval(m, x, y, z, order=0):
_ev = m.eigenvalues()
_ev = numpy.array(ev.subs(x=x, y=y, z=z))
_ev.sort()
return _ev[order]


But then if I want to perform a contour plot:

x, y, z = var('x y z')
p = vector([x,y,z])
f = p * p
h = f.hessian()
contour(lambda x, y: sorted_eval(h, x, y, 0, 0), (x, -1.5, 1.5), (y, -1.5, 1.5))


It takes a long time Thanks D

edit retag close merge delete

Also, in this particular case h is 2 times the identity matrix... and what is ev (maybe from numpy?) and you didn't import numpy... Given the number of other typos, I suspect you had a slightly more complicated setup in mind. Feel free to edit with the *exact* code you used, and we'll give it another shot! :-)