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](https://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?