MA 5310, Spring 2013
Professor Craig C. Douglas
Monday / Wednesday / Friday 11:00-11:50, Ross Hall 247
Office hours: Monday 10:00-11:00, Tuesday 3:00-4:00, Wednesday 4:00-5:00
Notes   Homeworks+Exams   Syllabus    Brownie Points
Exam #3 take home online (open book+notes)

Homework and Exams

Homeworks Exams Due Worth
hw1   2/4/2013 100
hw2   2/18/2013 100
hw2-li   whenever 10
  exam1 3/1/2013 100
hw3   3/6/2013 100
hw4   4/1/2013 100
hw4 exam2 4/15/2013 100
hw5   4/26/2013 100
  exam3 5/10/2013  


All homework should be emailed to me before class on the date due unless another specific time is listed. Always put MA 5310 in the Subject line of your message. I will send you a reply when I get your mail. If you do not get a reply, I did not get your email. You are responsible for having an email account that can communicate successively with me. I am flexible on which of my email accounts you use up to a degree. I will normally send you email from GMail, however.

All homework should be done individually unless explicitly stated in an individual homework assignment. It is acceptable to ask simple questions of other people, but do not collude or works together closely. All dead sources are acceptable, however.


This will combine mathematics and computation. All programming should be in C++ only.

1. Consider the following polynomial:

f(x) = x2 (104 + 104)x + 1.

(a) If we compute the roots of f(x) by the quadratic formula, x1,2 = ( b (b2 4ac)1/2 ) / 2a on a machine with 7 digit precision, what results do we obtain?
(b) What are the correct roots in infinite precision?

2. Create a C++ class that implements floating point arithmetic symbolically. The class should have options for the number of mantissa digits m, base b, and the number of exponent digits d. Have defaults for each and do not forget the number's sign in defining the class.
(a) Create your C++ header file with data stored in it for the data. Do not use floating point for the data: use integer arrays for m and d.
(b) You need a number of member functions, including at least one constructor, a destructor, a copy, a printer, and overload some arithmetic operations (=, +, and -). If you are a graduate student, then implement * as well.
(c) Write a main program that tests all of your class members.
There are many pitfalls that you need to think about and document how your class will react. In particular, document how you do roundoff.


This homework deals with Gaussian elimination for dense matrices and the actual problems are here. See Chapter 9 in the textbook and the software associated with the textbook (there is a link to the software in the Notes web page). The due date is tentative for the moment.


Show all details on paper for factoring the 3x3 matrix that Dr. Li Deng gave you in class in early February.


This homework deals with the conjugate gradient method. Prove Lemmas CG2 through CG5 and write the details of the proof to Theorem 3.9 from slides 61-62 in the class notes. The proofs generally involve expanding the correct formulae in clever ways. Lemma CG3 requires mathematical induction on all three parts at once. Be forewarned that there are multiple ways of writing alpha and beta at each time step that appear to be contradictory to what is stated in the slides (which are correct). The proofs can be as short as three lines or as long as 15 pages and still be correct. Do not expect any points for a 15 page proof when a three liner is sufficient, however.


Textbook problems from Sections 4.4.1 (6, 10, 15) and 4.4.2 (3). Use Parlib, not MPI directly in problem 15. You can use either your own data representations of a matrix and a vector or use the Matrix and Vector classes from the textbook.


Download ADICand make it. Then construct a set of test cases to show that you know how to use it. Turn in a document that describes your test cases and codes that you wrote and output from ADIC.




  1. Use one side of each piece of paper only.
  2. Write your name and the problem number you are solving on each page.
  3. Start each problem on a new page.
  4. Give details so that I can give you partial credit if your solution does not merit full credit.
  5. Write clearly and large enough so I can read what you write. If I cannot read your writing, you get no points.


March 1: Covers errors and numerical linear algebra (direct and iterative methods, dense and sparse matrices). Download here.


April 12-15: Covers finding roots, interpolatory quadrature, adaptive quadrature, and error estimates. Download here.


May 4-10: Covers anything that is related to the course. For those of you considering taking the qualifying exam that has computational math as a half, doing very well on this exam should imply you will pass the relevant half of the qual. Download here.


Craig C. Douglas and Derrick Cerwinsky

Last modified: