There are shortcomings, of course, but the range of cases where the zeros command works beautifully is quite astonishing - even works in cases where the Calculator cannot produce results. Hmmm...
Even more surprising, perhaps, is that "nSolve" works in the same way - AND it works on both CAS and non-CAS, which is GREAT news for all those with vanilla Nspire.
Funny though - in Calculator (even on CAS) if I enter nSolve(x^2 + y^2 = 16, y=2) it spits back an error - cannot take an equation with two variables. But it happily accepts it in Graphs & Geometry.
The difference between the two methods:
* zeros is a more general function and generally gives a good overview of most things you throw at it (except most TRIG functions, since these include constants in the result which G&G cannot evaluate). If you have CAS and you want to look at a relation in 2 variables, then zeros(f(x,y),y) will work well. In fact, it appears to be very reliable up to degree 3, so for all but degenerate conics, it is ideal.
* nSolve works on both CAS and non-CAS - it is VERY slow on the non-CAS handheld, taking a minute or more to generate a part of a curve. I say a part because, like the nSolve command, you generally don't get all the solutions in one hit - you need to enter a GUESS value. So to graph a circle with centre (2, 4) and radius 3 we might enter
f1(x) = nSolve((x-2)^2 + (y - 4)^2 = 9, y = 5 and
f2(x) = nSolve((x-2)^2 + (y - 4)^2 = 9, y = 3
where the two guesses are y-values on either side of the horizontal centre axis of the circle. Values greater than 4 for one and less than 4 for the other would work fine.
Now for the good news: this guess feature sounds like a bit of a pain, but in fact it lets the user quite specifically target parts of a curve, especially parts of a difficult curve that may be missed by the more general zeros command.
For example, consider John Hanna's favourite:
-x^(3)+2*x*y+y^(5)-y^(3)=0
If you have a CAS, you could use zeros(−x^(3)+2*x*y+y^(5)-y^(3)=0,y) or on non-CAS, nSolve(−x^(3)+2*x*y+y^(5)-y^(3)=0,y) will give you the same result - the bulk of this curve, but missing a part where it loops back over itself.
With just zeros, there is nothing you can do about that. But with nSolve, you can start adding pieces around the area where you can see the curve is missing.
So on a non-CAS (or CAS) you could define:
f1(x) = nSolve(−x^(3)+2*x*y+y^(5)-y^(3)=0,y)
f2(x) = nSolve(−x^(3)+2*x*y+y^(5)-y^(3)=0,y=2)
f3(x) = nSolve(−x^(3)+2*x*y+y^(5)-y^(3)=0,y = 0.45)
f4(x) = nSolve(−x^(3)+2*x*y+y^(5)-y^(3)=0,y = -0.6)
Remember this is a pretty extreme case - for the vast majority of curves, two sections should give the entire picture, but this does illustrate the real advantage here - you can get increasingly better resolution using this "guess" feature.
For students exploring such curves, this is engaging and pedagogically powerful, as they actively pursue the features of the curve that are relevant to their enquiry, rather than sitting passively and have the entire curve revealed for them.
This has implications for some of the other recent discussions - technology is most powerful as an aid to learning when students are active participants in the process, not passive spectators. The challenge of using powerful tools (like CAS, for instance) is to NOT let the tool do all the work!
Steve