I just indirectly stumbled across the computer algebra system
Maxima. It appears to be extremely well documented, clisp based, and reeking of awesomeness. Here are just a couple examples from the beginning of the
manual.
Basics:
(%i1) factor(10!); 8 4 2(%o1) 2 3 5 7(%i2) expand ((x + y)^6); 6 5 2 4 3 3 4 2 5 6(%o2) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x(%i3) factor (x^6 - 1); 2 2(%o3) (x - 1) (x + 1) (x - x + 1) (x + x + 1)
Integration and Differentiation:
(%i1) u: expand ((x + y)^6); 6 5 2 4 3 3 4 2 5 6(%o1) y + 6 x y + 15 x y + 20 x y + 15 x y + 6 x y + x(%i2) diff (%, x); 5 4 2 3 3 2 4 5(%o2) 6 y + 30 x y + 60 x y + 60 x y + 30 x y + 6 x(%i3) integrate (1/(1 + x^3), x); 2 x - 1 2 atan(-------) log(x - x + 1) sqrt(3) log(x + 1)(%o3) - --------------- + ------------- + ---------- 6 sqrt(3) 3
Linear and Cubic Equation Solving:
(%i1) linsolve ([3*x + 4*y = 7, 2*x + a*y = 13], [x, y]); 7 a - 52 25(%o1) [x = --------, y = -------] 3 a - 8 3 a - 8(%i2) solve (x^3 - 3*x^2 + 5*x = 15, x);(%o2) [x = - sqrt(5) %i, x = sqrt(5) %i, x = 3]
Non-linear Systems of Equations:
(%i1) eq_1: x^2 + 3*x*y + y^2 = 0$(%i2) eq_2: 3*x + y = 1$(%i3) solve ([eq_1, eq_2]); 3 sqrt(5) + 7 sqrt(5) + 3(%o3) [[y = - -------------, x = -----------], 2 2 3 sqrt(5) - 7 sqrt(5) - 3 [y = -------------, x = - -----------]] 2 2
It also does 2d and 3d equation plotting via gnuplot. This gives me an excuse to get back into reading
"God Created The Integers" and also encourages me to crack open my new issue of
Mathematics Magazine.
Of course, I could also spend time on other things, like seeing friends and going outside, but who needs that! ;)