How does Mathematica or Maple work?

Any computer wizards out there who have worked on them? How do they manage to do equation manipulations and retain the variables?

Although I do notice that for any serious problem they have to go to numerics or can’t solve it at all, but they are great for the tedious stuff.

Very broadly, any equation manipulation that can be broken-down into a step-by-step algorithm (no matter how tedious) can be done with a computer program. Seemingly non-algorithmic operations such as simplifying equations can be attacked with a big, standard “bag o’ tricks”, and since the computer is so fast, many different attacks can be tried, and discarded if they don’t lead anywhere, much like you’d have to do by hand.


Do you mean, how do they take an algebraic expression and manipulate it or simplify it? Or do complicated indefinite integrals?

Like, take Integrate[(x-5)(x+2),x] and convert it to x^3/3 - 3x^2/2 - 10x + C?

The rules for defining variables and manipulating strings and functions that are part of the program–is that what you mean?

Well, I’m kind of interested in both, but I was thinking of things like indefinite integrals.

Arjuna, so it just looks at the form of the equation, and there are key elements in it that tell it to try a certain group of algorithms?

Are you familiar with the old tables of indefinite integrals that we used to use on the old wood-burning computers? I mean, would-burn computers?

[wonder years] And it was at that moment that I realised part of my innocence was gone forever.[/wonder years]

I suppose that’s it then. A table of integrals, some reduction algorithms, an integration by parts algorithm and various others. Makes sense.

Thanks guys