This could be a deflating experience. ;-)
x(1) = vpasolve(f)
x =
-1.8454863060096746759606364851789
>> x(2) = vpasolve(f./(y - x(1)))
x =
[ -1.8454863060096746759606364851789, 1.8454863060096746759606364851789]
x(2) = vpasolve(f./prod(y - x))
x =
[ -1.8454863060096746759606364851789, -0.21998207940626722662355300718635]
x(3) = vpasolve(f./prod(y - x))
x =
[ -1.8454863060096746759606364851789, -0.21998207940626722662355300718635, 0.21998207940626722662355300718635]
x(4) = vpasolve(f./prod(y - x))
x =
[ -1.8454863060096746759606364851789, -0.21998207940626722662355300718635, 0.21998207940626722662355300718635, 1.8454863060096746759606364851789]
Well, deflating, because the approach I used is often called deflation, where at each turn I kill off all of the other roots I found so far. So, if you plot f(x), we get this:
ezplot(f)
hold on
ezplot(f./(y - x(1)))
And now plot the deflated functions in turn. As you see, each one has one root "removed" from the previous curve.
ezplot(f./prod(y - x(1:2)))
ezplot(f./prod(y - x(1:3)))
h = refline(0,0);
h.Color = 'k';
legend('f(y)','1 root deflated','2 roots deflated','3 roots deflated','Zero')
axis([-6,6,-3,3])
At the very end, what would we see?
ezplot(f./prod(y - x))
refline(0,0)
Thus, a curve that has been thoroughly uprooted.