Question: I would like to find out the regions where $f(x,y)=0$ for
$$f(x,y):=\frac{2 x^2 y^2+2 x y^2-2 x y+y^4-y^3}{4 x^3 y+2 x^2 y-x^2+x y^2}$$
So I wrote this:

```
ContourPlot[(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4)/
(-x^2 + 2 x^2 y + 4 x^3 y + x y^2) == 0, {x, -4.5, 4.5}, {y, -4.5, 4.5}]

```

which resulted in

[![odd](https://i.stack.imgur.com/MFVNR.png)](https://i.stack.imgur.com/MFVNR.png)

So I thought it's better to just find out where the numerator is zero:

```
ContourPlot[-2x y + 2x y^2 + 2x^2 y^2 - y^3 + y^4 == 0, {x,-4.5, 4.5}, {y,-4.5, 4.5}]

```

[![normal](https://i.stack.imgur.com/ZjvY7.png)](https://i.stack.imgur.com/ZjvY7.png)

I know the odd behavior of the first plot maybe has something to do with the denominator becoming zero somewhere, but in that case, $f(x,y)$ will tend to infinity and normally, it shouldn't be on the plot. So my question is, how can we prevent such noise from appearing on the plot? Is there any way other than dismissing the denominator?

Answer: 
I don't know what version you are using, but `ContourPlot` is a bit smarter in 11.3. The result I get here is:

```
ContourPlot[(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4)/(-x^2 + 
 2 x^2 y + 4 x^3 y + x y^2) == 0, {x, -4.5, 4.5}, {y, -4.5, 4.5}, 
 PlotPoints -> 50]

```

[![enter image description here](https://i.stack.imgur.com/JJaHu.png)](https://i.stack.imgur.com/JJaHu.png)

In your version it appears that `ContourPlot` assumes there is a zero contour if the function value is positive on one side and negative on the other. So what you're seeing is the boundary of the region where the function is positive:

```
RegionPlot[(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4)/(-x^2 + 
 2 x^2 y + 4 x^3 y + x y^2) > 0, {x, -4.5, 4.5}, {y, -4.5, 4.5}, 
 PlotPoints -> 100]

```

[![enter image description here](https://i.stack.imgur.com/mT8qr.png)](https://i.stack.imgur.com/mT8qr.png)

The simplest workaround is to do what you already did - remove the denominator.
If you Plot both contours (numerator and denominator) 

```
ContourPlot[{(-2 x y + 2 x y^2 + 2 x^2 y^2 - y^3 + y^4) == 
0, (-x^2 + 2 x^2 y + 4 x^3 y + x y^2) == 0}, {x, -4.5, 
4.5}, {y, -4.5, 4.5} , ContourStyle -> {Blue, Red}, 
MaxRecursion -> 4]    

```

[![enter image description here](https://i.stack.imgur.com/0WQX6.png)](https://i.stack.imgur.com/0WQX6.png)

you can see some critical intersections where ContourPlot has to deal with `0/0`