Throughout this course we’ve run into many examples of the peculiarities of doing mathematical calculations on computers: catastrophic subtraction, nested multiplication for efficient computation of polynomial sums, being unable to represent numbers smaller than machine precision, etc are just a few of the issues brought up in class.
Much of this stems from the fact that the computer doesn’t reason about math the same way we do: (a-b)^10000 being equal to (a-b)^(100^2) is a fact that isn’t too hard to see for anyone with high school level math skills, but this isn’t a trivial problem for a computer, as (without being told otherwise) it would try to evaluate both the expressions first before comparing their values to each other, which leads to, as mentioned above, problems like catastrophic subtraction, etc popping up, not to mention a needlessly large expense on memory and processor cycles.
Computer Algebra Systems are a way to allow computers to reason about mathematical expressions in a symbolic fashion, in a way much closer to the way humans reason about math. Software packages like Maple and Mathematica are examples of such systems that are able to do operations like differentiation, integrations, taking limits, etc in a efficient and precise manner. While of course the full workings of those software packages are far beyond the scope of our course, here is a easily digestible article about how such a basic Computer Algebra System might be built for the express purpose of taking the derivative of a polynomial expression. Especially instructive are the parts on what data structure to use to represent expressions, how they can be simplified to ensure a unique representation, and reducing differentiation to a small, compact series of rules easily carried out by a computer.
http://www.math.wpi.edu/IQP/BVCalcHist/calc5.html
It should also be noted that Matlab is not an example of a Computer Algebra System! Not that this is entirely bad, since Computer Algebra Systems tend to run slower due to being forced to maintain full symbolic generality.
For further reading, try
http://en.wikipedia.org/wiki/Computer_algebra_system






Leave a Comment
You must be logged in to post a comment.
* You can follow any responses to this entry through the RSS 2.0 feed.