I have some larger square, Hermitian matrices, M, (dimension 20, say, much more than 4) with 2 independent variables, call them x and y.
I can plot the eigenvalues as functions of x and y with:
Plot3D[Eigenvalues[M], {x,-1,1}, {y,-1,1}]
even though I obviously have no analytic expressions for the eigenvalues as functions of x and y.
I am interested in the nature of certain contours of these functions, let's say their intersections with zero.
Furthermore:
ContourPlot[Eigenvalues[M], {x-1,1}, {y,-1,1}]
will give me plots (e.g. http://i.imgur.com/g9GgFSy.png?1)
and in fact, the zero shown there was from a mouse-over of the central contour (cursor not present in image).
So Mathematica is clearly able to plot the contours, even the analytic zero contour.
However, if I change to
ContourPlot[Eigenvalues[M] == 0, {x-1,1}, {y,-1,1}]
I will get errors about "Mathematica can't find all the roots of the characteristic polynomial". This simple change of commands has apparently really altered how Mathematica is going about evaluating it and now it is trying (and of course failing) to solve an order-20 polynomial for analytic roots.
But from the regular contour plot, I can see that it should be capable of giving me the numerical zero contour.
So how can I get Mathematica to weaken the equality condition and give me the numerical zero contour approximately?
or
Perhaps there is another way altogether to extract the single contour I need from the 3D plot or the full ContourPlot?