Sympy is pretty awesome. I use live.sympy.org a lot with my students because you can bookmark an entire interactive session as a (long) URL. For example, suppose you had to answer the following question. Find the position of the object at t=3 seconds, if it starts from x_i=20[m], with v_i=10[m/s] and undergoes a constant acceleration of a=5[m/s^2].
Ans: 72.5[m]. Sol.: http://bit.ly/1hJS9P3
Below are some more examples of cool stuff sympy can do.
I am certain that the sympy mailing list would be extremely happy to hear more about your use of live.sympy.org. Especially if you have any suggestions or requests.
This is because of a rigorously defined procedure called "extending by continuity". The function is continuous, your issue is just an artifact of notation.
Can you explain this more? From what I understand the original function has division by '0' at those specific values of 'x'. So the final reduced form has a different domain where it is valid.
I will give an example, not the general definition.
Consider the function f: x -> sin(x)/x. At x=0 you indeed have a division by 0, and if you stick to blindly using your notation it does not work. The function is not defined at x=0. However you usually (not always) are interested in the function as a whole. Look at the limit from the left, look at the limit from the right. They have the same values, it makes sense just to use this limiting value for the value at x=0.
>>> simplify(sqrt(x^2))
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/base/data/home/apps/s~sympy-live-hrd/43.373169527249054993/sympy/sympy/functions/elementary/miscellaneous.py", line 110, in sqrt
return C.Pow(arg, S.Half)
File "/base/data/home/apps/s~sympy-live-hrd/43.373169527249054993/sympy/sympy/core/cache.py", line 93, in wrapper
r = func(*args, **kw_args)
File "/base/data/home/apps/s~sympy-live-hrd/43.373169527249054993/sympy/sympy/core/power.py", line 119, in __new__
obj = b._eval_power(e)
AttributeError: 'Not' object has no attribute '_eval_power'
The sympy version at http://live.sympy.org renders things nicely with in LaTeX (MathJax), though to be honest I prefer the plain ascii output so that I can copy-paste expressions more easily.
I'd say you still need the calc skills so you'll know what you're doing: sympy helps with demos, explorations, and tedious calculations, but not with the theory.
For example, here's a little demo that shows that integration is the "undo" operation of differentiation http://bit.ly/1dDD4dc but that won't make you really understand the fundamental theorem of calculus[1].
Actually it does sharpen my calc skills. Now I can do more experiments, better visualizations, I can try something out and see if I'm wrong. All that helps on accumulating insight. Plus, if knowing your tools makes a good carpenter, why is it different with mathematicians.
This is basically the sym() and simple() functions from Matlab, which is something I really felt wasn't nearly widespread enough. Knowing about this is fantastic and I'm going to use it heaps. Thanks!
Below are some more examples of cool stuff sympy can do.
Expand, factor, and solve polynomials:
Derive the solutions of a quadratic equation: Compute symbolic outputs of trig functions: Sympy knows about trig identities: Find the solution to the simple harmonic oscillator differential equation (x''(t)+w^2x(t)=0): For v4.1 of my math book, I'm going to add a short sympy tutorial. I'll post a printable version of it to HN when I release, so stay tuned ;)