At work I use many fairly advanced tools that can do a lot of things such as Matlab, which in all it’s glory is a very nice tool. However, for things such as Project Euler which does contain small problems, where I try to get a feeling for the problem in a whole other sense than I usually do Matlab is not very good, let alone that I could never afford it for private use.
I have been pointed towards a tool called GeoGebra which is a free tool written in Java, where you can manipulate lots of different geometric objects such as functions, points and lines. You can also use tools such as intersection and getting the slope shown. You can even define your own tools if you like.
I think it has been made as a teaching tool for high school students, but I have been playing around with it for a short while now and I can definitely see some useful things in it when I try to grasp a problem. It wont work on abstract problems, but small geometric problems will be a thrill to work with from now on.
It promotes it self as
GeoGebra is free and multi-platform dynamic mathematics software for all levels of education that joins geometry, algebra, tables, graphing, statistics and calculus in one easy-to-use package. It has received several educational software awards in Europe and the USA.
The best thing about the tool is the readily available material. There are a tutorial and manual right at the GeoGebra help site, there are tons of You tube videos from GeoGebra let alone the ton of user made videos and there is the user forum.
Math and Multimedia has a list of the 10 best tutorials for the tool to get you started. and GeoGebra Applet Central has some applets which shows the use of different parts of GeoGebra and I especially like the applet showing how to approximate Pi by increasing the number of sides in a polygon inscribed in a circle.
I am very impressed so go ahead and take a look at it at GeoGebra. You will definitely see some illustrations from me using this tool in the future, since it is so easy to illustrate the functions and so on.