Wow, I have many things to say, but I'll try to be short:

1. whould you please enter this code in your class pad 300 and let me know if it is solved successfully!

solve(log(x)-ln(x)+tan(x)=x,x)

Please do it with solve command and numerical solver!

We know that this equation has several roots! for example 4.62, 7.??, ... but solve can not solve it until you specify as:

solve(log(x)-ln(x)+tan(x)=x, x, 4.5)

This equation cannot be solved analytically, i.e.,

solve(log(x)-ln(x)+tan(x)=x,x)

gives no answer. Even Mathematica cannot solve it, so we shouldn't be complaining. However, it can be solved numerically: the built-in function solve can get a third argument:

solve(expression,variable,guess)

where guess is an "initial guess" for the root. So,

solve(log(x)-ln(x)+tan(x)=x,x,4.5)

gives a root because solve has a third argument, equal 4.5, and this means that ClassPad tries to solve the equation numerically, using x=4.5 as an initial guess for the root. The manual explains this behavior, although it is not very informative.

Internally, it seems that ClassPad uses the well-known Newton-Raphson method to compute the root numerically. Newton-Raphson is fast, and it's the most popular root-finding method, but it has a main disadvantage: it

*needs* an initial guess, and this guess

*should not be selected arbitrarily*. If you select the initial guess blindly, ClassPad may fail to compute the root, or it may give a root too far from your initial guess. This is not a bug: it's due to the functionality of the Newton-Raphson method

Now, how can we compute several roots? This is rather easy, provided that you know what you are doing:

(1) Plot the function log(x)-ln(x)+tan(x)-x from x=0 to x=11. Use "Settings->Setup->Graph Format" to set the axes on. Use proper values for ymin and ymax (in this example, you will get a nice graph by using ymin=-12 and ymax=4). You will see that this function has many discontinuities. You will also see that there are three roots in the interval [0,11].

(2) Use "Analysis->Trace" to get a raw estimate for each root. This estimation needs not to be accurate: the crucial point is that the tangent at the root estimation crosses the x-axis near the root you want. You can also use "Analysis->Scetch->Tangent" to plot the tangent at a point. Using this procedure, you will see that x=4.2, x=7.4, and x=10.6 are good initial guesses for the roots. You can also see that x=2.76 is a very bad initial guess (plot the tangent at this point to see why).

(3) Use solve to get the roots, giving the initial guesses you have found, i.e.:

solve(log(x)-ln(x)+tan(x)=x,x,4.2)
solve(log(x)-ln(x)+tan(x)=x,x,7.4)
solve(log(x)-ln(x)+tan(x)=x,x,10.6)

You will get the three roots almost instantly. To see the effect of a bad initial guess, try

solve(log(x)-ln(x)+tan(x)=x,x,2.76)

You will need to wait for several minutes, then you will see that ClassPad fails to compute any root.

Remarks:

(1) The procedure explained before is useful for practical purposes. However, if you want to know more on how "solve" works, you need to read any good book on Numerical Analysis to see how the Newton-Raphson method works.

(2) Of course, you can use "Analysis->GSolve->Root" to get a graphical solution. The results obtained this way are accurate enough.

(3) The "NumSolve" application has a similar funtionality, but it needs a x-interval, besides the inital guess. For that reason, I think that using the solve function is much more convenient.

(4) If there are no discontinuities within your x-interval, you can also use my LuaNumAn library to obtain all the roots with less effort. However, you need to know the Lua programming language for this.

2. consider the function f(x, y) = (x^2+y^2)/(x^2-y^2), as we know this function has no limit in (0,0) now enter the following code:

lim(lim((x^2+y^2)/(x^2-y^2), x, 0), y, 0), you will get (1) and now:

lim(lim((x^2+y^2)/(x^2-y^2), y, 0), x, 0), you will get (-1)

therefor in such cases you MUST do all sequences to get the correct answer, if f= f(x, y, z) and p0(0, 0, 0)

you must use several codes to indicate the there is a limit or not.

Well, finding multidimensional limits is not an easy task for

*every* CAS. In genenal, you can prove that a function is not continuous at a given point (x,y) by finding two different liimits when approaching the point by two different paths. This is exactly what you have done in your example. Finding the appropriate paths for this may be extremely difficult. There are some guidelines, but they only apply to specific kinds of functions, and they are not general. Conclusion: yes, you must use several codes to prove that there is a limit or not.

3. the above function has discontinuity for y=+ and y=-x, what is the behavior of CP300 and TI-89 in the follwing case:

integrate(integrate((x^2+y^2)/(x^2-y^2), x, 0, 1), y, 0, 1)

Hmmm, why don't you try it in your ClassPad? You will see that there is no real result, and this is totally correct. This integral does not converge. I don't have TI89 or V200, so I cannot say what answer they give.