MTH 437/537 Introduction to Numerical Analysis I Fall 2015 Times, places Class: 437/537 MWF 10:00am 10:50pm Math 150 Lab: 437A Tu 8:00 8:50am Math 250 Instructor John Ringland. Office: Math Bldg 206. Phone: 645 8773. E mail: ringland@buffalo.edu. Please be sure to put "437" or "537" in the Subject line. Office hours: MWF 11:00 11:50am. Also by appointment, if necessary. T.A. TBA Website http://blue.math.buffalo.edu/437 Bookmark, and check often. Textbook Computing Software Optional but highly recommended: Numerical Analysis, 1st or 2nd edition, by Timothy Sauer (Addison Wesley). Since most heavy duty scientific and mathematical computing is done on machines running the Linux operating system, you are encouraged to try using Linux on your own computer, and I will be happy to help you do this. However, if you are locked into MacOS or Windows, you will still be able to do the course work using those OSs. On some specified class days, you will use your laptop in class (or share someone else's). NOTE: There will be absolutely no non class related use of computers (this includes tablets and phones) during class each infraction will cost you a 5% reduction in your overall class grade. The programming language we will use in this class is Python (2.x). We will use the Python libraries NumPy, SciPy, Matplotlib and SymPy. All of this is free open source software which can be downloaded as follows: Linux users: sudo apt get install python numpy python matplotlib python scipy python sympy Mac and Windows users: get the Anaconda distribution of Python. For writing up some class assignments, you may find it convenient to use LibreOffice free software that's a near equivalent of Microsoft Office. Syllabus See separate document for a list of the topics you will learn about. You will also become proficient in Python programming. Grades Homework: 25% In class tests: 3 x 20% Project 10% Class participation 5% Grading Labs Homework Please bring any possible grading errors to my attention by returning the paper with a note attached, clearly explaining how the given score is not appropriate. On each homework and exam, a random sample of graded papers will be scanned and kept on file. The penalty for requesting regrading of work that has been altered after grading is an F in the course. The scanner runs way faster on single sided material, so please write/print on only one side of the paper for all homeworks and exams. The labs for the 437 students, conducted by the TA, will start in the second week of classes. The homework will always be due at 3:59pm on a Tuesday unless I announce otherwise. No late homework
will be accepted. Although you are welcome to discuss homework with other students, the work you turn in should not be identical, or even very similar, to someone else's. Solutions will be available on the website. In the computation of your overall grade, your lowest homework score will be dropped. Project The class project involves computation and a formal report. It is due at noon on Monday Nov 23. Exams In class Exam #1: Friday, Oct 2. In class Exam #2: Wednesday, Nov 4. In class Exam #3: Friday, Dec 11. Exams will test your knowledge of mathematics, algorithms, and programming. For each test, you may write by hand some essential facts on one side of a 5"x8" index card, and bring the card with you to the exam. How to succeed in this course Sustained steady effort, starting today! Be engaged in class, and make full use of the resources available to you: Google, Wikipedia, the optional textbook, the website, me (talk to me in class, during office hours, and by appointment.), the TA (in labs, during office hours, and by appointment), and your fellow students! Start homework assignments early! Get a study group together. Bail-out dates Students with disabilities I hope these will not be relevant to you, but just in case: Tuesday, Sep 8 is the last day to drop the class with no record on your transcript, Friday, Nov 13 is the last day to resign from the course (with an R on your transcript). If you have a diagnosed disability (physical, learning or psychological) which will make it difficult for you to carry out the course work as outlined, or requires accommodations such as recruiting note takers, readers, or extended time on exams and/or assignments, please advise me during the first two weeks of class so we may review possible arrangements for reasonable accommodations. Making up Incompletes To make up an Incomplete in a math course you must: 1. Not re register for the course you are making up an incomplete in your original course. 2. Appear in person at the Mathematics Building, Room 233, ask for Patti Wieclaw and ask her to initiate an incomplete petition form for you. 3. Sign the petition. 4. a) If your original instructor determined that the work was to be completed with him/her, take the approved petition form to your original instructor for signature. b) If your original instructor determined that the work was to be completed by repeating the course, take the approved petition form to your new instructor for signature. 5. Return the petition form to Patti Wieclaw in Rm. 233 Math Bldg. by the last day to add a course.
MTH 437/537, Fall 2015 Background information Would you please supply the information requested below. (1) Name: (2) Degree program & year in program: (3) An "alias" (a made up name) of your choice, to permit anonymous online posting of grades: anything you like that cannot be traced to you (cannot be your real name or an abbreviation of it, not your person number, not your gmail account name, etc.): (4) One semester of programming in some language is a prerequisite for this course. Circle the closest approximation to the number of lines you have written in each of the following languages: Python 0 1 10 100 1,000 10,000 C/C++ 0 1 10 100 1,000 10,000 Java 0 1 10 100 1,000 10,000 Matlab 0 1 10 100 1,000 10,000 Maple 0 1 10 100 1,000 10,000 Mathematica 0 1 10 100 1,000 10,000 Other (specify) 0 1 10 100 1,000 10,000 Other (specify) 0 1 10 100 1,000 10,000 (5) Do you have a computer of your own? No Yes, a laptop Yes, a desktop (7) Do you have a laptop that you could bring to class for in class computing activities? Yes No (6) Which operating system(s) do you have experience with. (8) What are your plans after you get your degree? (in 5 words or less!) (9) What are you hoping you will get out of this course? (10) Would a computer orientation session on Friday, Sep 4, be of interest to you? Yes No If yes, what would be the most convenient start time (between 11am and 6pm)?:
Topics to be learned in MTH 437/537 Need for numerical methods successive approximation and truncation error numerical analysis? binary representation of numbers conversion between decimal an binary IEEE 754 floating point representation of real numbers mantissa, biased exponent, binades hexadecimal shorthand zero machine epsilon largest, smallest machine numbers, infinity, NaN hole at zero, denormalization Taylor's theorem rounding error catastrophic loss of significance avoiding rounding error rearranging calculation use an approximation computing bounds on rounding error solving an equation in a single scalar variable bisection method intermediate value theorem bracketing a root functional iteration cobweb diagrams linear convergence Newton's method quadratic convergence failure to converge secant method inverse quadratic interpolation stopping criteria for linearly and quadratically convergent processes Brent's method solving a system of linear equations direct methods naive Gaussian elimination zero-based counting operation counts measuring speed of computer arithmetic GE as LU factorization, back subsitution vector norms forward and backward error, ill-conditioning matrix norms, condition number swamping, partial (row) pivoting, PA=LU bounds on error, Wilkinson formula cholesky factorization of symmetric positive definite matrix iterative methods solving systems of nonlinear equations Newton's method Broyden and Sherman-Morrison rank-1 updates homotopy (morphing) polynomial interpolation Lagrange, Newton bases for polynomials of degree at most n interpolation error bound non-uniform nodes, Chebyshev nodes piece-wise polynomial interpolation - splines Bezier cubic curves optimization minimizing a function of a single scalar variable
golden section method minimizing a function of several variables Nelder-Mead downhill simplex method Newton's method (on gradient) steepest descent conjugate gradient method overdetermined linear systems least squares approximation of data by a model linear model normal equations QR factorization Householder reflections Gauss-Newton method nonlinear models linear programming (constrained linear optimization) [if time permits] differentiation symbolic finite-difference approximation "automatic" (chain-rule-based) differentiation integration (quadrature) quadrature rules polynomial degree uniform nodes Gaussian (maximal degree) quadrature Gauss-Kronrod pairs adaptive quadrature Monte Carlo methods pseudo-random numbers applications differential equations [if time permits] initial value problems local and global error convergence, stability boundary value problems shooting (other methods in 2nd semester) Python program flow control assignment and argument passing import NumPy arrays zeros, ones, empty, linspace, random.rand slicing broadcasting writing vectorized code print matlplotlib