PROJECTS FOR MATH 2605,
                                          Fall 2007








Two projects are required.  Up to six can be done for additional credit, as explained in the grading policy.
Each project has its own due date, which will be posted. These are firm, so plan ahead. If you miss one, go on to the next ones.


How to turn in projects


You will need to create a web page on some server; it need not be on a Georgia Tech server, although that is one possibility. By the time the first project is due -- whether or not you choose to do that project -- you must email me the url of your page.  On the due date, active a link to your project, and send me notificiation.

Each project involves writing some code to do various experiments with the ideas and methods of the course. The project descriptions all come with
 questions that your experiments should enable you to answer.  When you turn in a project, you should turn in  (1) your source code (2) a write up in pdf format discussing what you did, choices you made in your implementation, and the answers to questions in the project write up, and any graphs that should be produced.  (3) Your compiled code, for example, a java applet. (4) A "read me" file explaining how to compile and use your program. All four items are mandatory.

These four things should be put in a zip file that can be downloaded from your web page. Better yet, you can make a page for each project you turn in,
 with links to the source files, etc. There are some examples below.

In writing up your work, make sure your answers and the conclusions you present are quantitive, and contain information that could not have been esialy predicted before running your program -- i.e., before doing the experiment.  This is an important point, and it will be explained further in class.
Resources for doing the projects

You are encouraged to do these projects using java, you will probably find the JAMA Package (JAva MAtrix)  quite helpful. It is publicly available with good documentation and source code.  The current implementation does not admit complex vectors or matrices, and probably for this reason there is no Schur decomposition yet included, not even the real form, so this doesn't give anything away; it just takes care of the basics, so you can focus on the course topics.

 You may also wish to use a function parsing package Professor Carlen wrote for use in mathematical applets. Very often in graphing applications, one needs to evaluate the same function for many different inputs -- say one for each pixel. It is then very inefficinet to parse the string describing the function each time. The function parser package  has a method for parsing a string once and for all, and producing an object called an evaluator, which can then be used for rapid repeated computation. It is used in all of the applets I have posted on the web.

 In the project (to be posted later) on using the singular value decomposition to compress an image, you may want to look at the  graphics file format page. The portable bitmap formats are paerticularly simple to work with (PGM for grayscale and PPM for full color). Here is a very useful link to the the  JIU (Java Imaging Utilities) library. Either using this library, or working by hand with the prtable bitmap (as opposed to BMP, the MS-Windows bitmap format), you should be able to convert image files to and from matrices.


                                                                                        Projects

 Project 1:  
Solving equations using steepest descent.   This project is due Monday September 24
                                                                                  New deadline: Monday October 1. (Because there
                                                                                  is a test on Tuesday September 25.)

 Project 2:  
Pinball Project (by John Elton)                  This project is due Monday October 8 at Midnight.
                                                                                  New deadline: Friday October 12 at Midnight.


 Project 3:
Jacobi Algorithm (by Eric Carlen)              This project is due Monday October 22 at Midnight.
                                                                                 New due date: Friday October 26 at Midnight.


 
 Project 4:
Singular Value decomposition (by Eric Carlen)                                                              

                                                                                 This project is due Friday November 2 at Midnight.
                                                                                 New due date: Tuesday November 6 at Midnight.
                                                                                 Those who turn in the project on the old due date get extra                                                                                   credit!

 Project 5: Visualization for SVD (by Eric Carlen)       This project is due Friday November 2 at Midnight.
                                                                                  New due date: Tuesday November 6 at Midnight.
                                                                                 Those who turn in the project on the old due date get extra                                                                                   credit!


 
 Project 6: 
Power method for calculating eigenvalues (by Eric Carlen)                                                              
                                                                                 
This project is due Monday November 12 at Midnight.


 
Project 7: QR method (by Eric Carlen)                                                              
                                                                                 
This project is due Friday November 23 at Midnight.
                                                                                   New due date: Monday November 26 at Midnight.
 

 Project 8:
Euler's method for solving ODEs  (by Eric Carlen)                                                              
                                                                                 
This project is due Friday November 30 at Midnight.
                                                                                   New Due date: Tuesday December 4 at Midnight.