Math 133: Introduction to Computer Algebra Systems
James Cook's Computer Algebra Homepage:




Philosophy of Computer Algebra (not everyone agrees!):
I usually google calculations which I commonly need to repeat for some course. I've found that the Java applets designed by certain professors are far more convenient than any graphing calculator or CAS (such as Mathematica or Maple or Matlab). The most general and robust approach is to learn a CAS by yourself and solve problems as they arise. However, sometimes it's nice to not do that. Wolfram alpha is a great example of the type of tools which are inevitably to arise in the coming decades. Personally, I like to use a little math graphing program called "Graph". It does most of what I need to do and it's free so I can put it on any computer ( except the schools, perhaps...) and graph and graph and graph never worrying about license agreements etc... In contrast, with a program like Mathematica you have to purchase it and then worry about licensing perennially (at least I do). Wolfram Alpha is based on Mathematica except it is also free for now.

Math 133 is not just about checking answers for calculus. If that was the only goal then there are certainly better ways. The reason we make you suffer through the syntax and generally obtuse nature of Mathematica coding is for you to gain experience with mathematical software. The types of problems you can solve with Mathematica are far more sophisticated than anything we cover in undergraduate mathematics. So, Mathematica is a tool which modern mathematicians and engineers wield to solve problems too difficult to solve via pen/paper analysis. Maple is a similar software (that is cheaper), but we use Mathematica. In some engineering departments it is common to use Matlab for difficult numerical problems, people who know more than I claim that it is a better tool for linear algebraic problems. Maple on the other hand, like Mathematica is well-suited to solve symbolic problems. For example, my brother solved a abstract algebra problem via Maple at NCSU a few years ago.

What's my point ? We should all do some sort of computer mathematics work. Once you understand one program it's often the case that if called upon you can learn another with ease. I know Mathematica is at times frustrating, but if you're like me you'll find that being angry at the machine doesn't solve the homework. Also, weirdly enough hurrying tends to make it take longer. Ideally, you want to work in a group where everybody contributes something.

The format of this course is fairly simple. There are no tests or quizzes. Instead, you will be asked to complete a number of assignments partly in the meeting time. I will be there to help, if you have already made an effort and are really stuck. The grading is relatively strict in this course. You must follow instructions. The main idea is this: explain what the calculations mean. Often the output of Mathematica requires comment. Your job in part is to add text that says "therefore blah" is the equation above it means "blah". I have the answers so I can help you interepret the questions, I want us to be stuck on the Mathematica not the question itself so if you don't get what I'm asking then by all means speak up (politely).

Finally, I have the first few assignments mapped out thanks to the generousity of Dr. Rumore and Professor Young. These are nice assigments that will do a great job to get started. Once we've got the basics settled I want to ask some difficult problems (probably also written by either Professor Young, Rumore or Kester to give credit where credit is due...). I say this to encourage you if you happen to be bored the first few weeks.

Useful Materials and Links:
  1. Matrix Calculator Site - Calculates matrix inverse for you.
  2. Matrix Calculator Site - Multiplies matrices for you ( use to check answers )
  3. NCSU Matrix Calculator Site - Will do the "Gauss-Jordon" row reduction for you ("reduce completely" button).
  4. "Wolfram Alpha", I heard a rumor from a reliable source this is something nice to play with.
    I have not since I am a math dinosaur, but if you like technology this may be for you.
  5. Matrix Calculator Site - Will do, well what won't it do? That's the question. Thanks to the student who found this site. Very useful.
  6. Eigenvector calculator, ugly numbers no problem. Also deals with complex case no problem. However, does not find generalized e-vectors.


Mathematica Templates and Projects from past courses:
I intend to post projects students have completed for Advanced Calculus (Math 332) and other courses. I may show some features of Mathematica which are beyond Calculus I. Ideally I'd like to have an easy to follow template of the major calculations in all undergraduate courses. In my experience, a template is far better than the built-in help when I'm getting started on some calculation. Fortunately Mathematica 7 was recently released so our work shouldn't be outdated for at least a few years.



examples for calculus one
  1. no frills, just a couple plots and some comments about Problem 9 in the Fall 2010 homework for Math 131 (obviously these comments only apply directly to my section(s) of calculus I, if you have a different professor then their advice is primary!) . (calculus I, written by me)
examples of Mathematica in higher math and physics courses
  1. animates the Frenet frame for a space curve. (calculus III or advanced calculus, written by Scott Taylor spring 2010)
  2. shows Coulomb and Dipole fields in electrostatics. (calculus III or physics 232, written by me: note this illustrates the ideas of vector fields. I define one vector field as a function of the location of the generating charge then use that single vector field and superpostiion to build the other fields)
  3. more on visualization of electric fields. (calculus III or physics 232, written by me)
  4. visualization of differential equation solutions via direction fields. (written by a calculus II student in previous semester: this was in response to my challenge that Mathematica cannot so elegantly replicate the beautiful analysis offered by Matlab's "pplane" tool... I still like "pplane" (there is a link in my DEqns page and Calculus II page) but the use of "Manipulate" in this code is worth replicating for other problems... even if they have nothing to do with DEqns...
Graph Files for use in the "Graph" program:
Most of the figures generated in my notes are built with Graph. With a little thinking there is little you can't do with Graph. Well, I don't know how to do 3D-graphs yet. I have a few pictures below that appear 3D but essentially I just used Graph to draw perspective. Graph also has some animation features. [these will not open in your browser, you'll need to install the "Graph" program on your machine then you can save these files and open them with Graph]
  1. graph of function.
  2. crazy level curve, Graph can graph equations.
  3. Graph can graph tangents of functions, this illustrates Newton's method.
  4. this is an interesting function.
  5. Graph visualizes relations easily as well. This illustrates the epsilon-delta idea.
  6. here's how I created the exciting sign-charts in the calculus notes.
  7. one of my favorite graphs. Here you can see Taylor's theorem working.
  8. again, more beauty via Taylor's theorem.
  9. it will illustrate and calculate definite integrals.
  10. polar graphs, no problem And, you can superpose Cartesian and polar and parametric plots all at once without any special coding.
  11. ok, graph is not really for this. I'm just abusing it.
I would very much like to find a 3D-graphing utility which is free. I've not found one that I like at this time. The power of Mathematica or Maple for 3D-graphing is hard to surpass or replicate. If you happen to find an open-source 3D-grapher which is as nice as Graph is for 2D please let me know.



Back to my Home

Last Modified: 8-2010