Download geogebra here. It works for all operating systems (Windows, Mac, Linux).
Geogebra is a great program for dynamically visualizing graphs. Since the heart of calculus is change and graphs -- a program which allows you to quickly and easily see nearly any type of graph and then allows you to change that graph in a smooth fashion is hugely valuable. Geogebra does this excellently.
Sample Geogebra Files
After you have downloaded geogebra, download and explore these examples.These all rely on "sliders" (upper right hand corner) which let you dynamically change values.
You should create "Sliders" before you create a function which depends on a slider.
1) create a slider for "m"
2) create a slider for "b"
3) create: y = mx + b
1) Geometry of Derivatives
You have a polynomial f(x) = e(x-a)(x-b)(x-c)+d. a,b,c,d, and e are freely-adjustable by sliders which changes the graph smoothly and "in real time" as you adjust them. You can then see how the first derivative are used to find local min/max of the graph and the second derivative is used to find the point of inflection.
Click the screenshot to enlarge
2) Exploring the function f(x) = a*sin(bx+c)+d
The constants a,b,c, and d are controlled by sliders which change the graph as you manipulate them.
Click the screenshot to enlarge.
3) Visualize parametric equations r = f(theta) as they are traced out in real time!
Say you have a curve like: r = 5sin(2t)
To find the x and y components of any equation of the form r = function of t , just multiply by cos(t) and sin(t) respectively:
The x component of this curve is cos(t) * (5sin(2t))
The y component of this curve is sin(t) * (5sin(2t))
Now go into geogebra and perform the following steps:
1) Create a slider, name it "t". Make it run from -2*pi to 2*pi in steps of pi/60 (so you get a nice smooth curve)
2) Create a vector using exactly this command: vector[(0,0),(cos(t)*5*sin(2*t),sin(t)*5*sin(2*t))]
3) Create a point using exactly this command: (cos(t) 5 sin(2 t), sin(t) 5 sin(2 t))
4) right click the point > "object properties" , in the "basic" tab, check "Show trace"
5) right click the slider > "object properties", in the "basic" tab, check "Animate on"
What you should have is a vector from the origin to the point (r,t). (The vector command is saying create a vector from point (a,b) to (c,d) ==> Vector[(a,b),(c,d)] ) It will automatically trace itself out as t varies. You can click pause, ctrl+click to drag and zoom, make the vector visible/invisible, etc.
You can create points (a,b) or (a, f(t)), etc. where a is a constant (or a slider value) and f(t) (or f(x), whatever you like). Try graphing (t, length[v]) where "v" is the vector you created in step 2.