Schmidt, Henrik, 2.993J Introduction to Numerical Analysis for Engineering (13.002J), Spring 2005. (Massachusetts Institute of Technology: MIT OpenCourseWare), http://ocw.mit.edu (Accessed 10 Jul, 2010). License: Creative Commons BYNCSA
This course features a full set of lecture notes and an extensive set of supplementary files. The course also includes assignments as well as a sample exam.
This course is offered to undergraduates and introduces students to the formulation, methodology, and techniques for numerical solution of engineering problems. Topics covered include: fundamental principles of digital computing and the implications for algorithm accuracy and stability, error propagation and stability, the solution of systems of linear equations, including direct and iterative techniques, roots of equations and systems of equations, numerical interpolation, differentiation and integration, fundamentals of finitedifference solutions to ordinary differential equations, and error and convergence analysis. The subject is taught the first half of the term.
This subject was originally offered in Course 13 (Department of Ocean Engineering) as 13.002J. In 2005, ocean engineering became part of Course 2 (Department of Mechanical Engineering), and this subject was renumbered 2.993J.
Special software is required to use some of the files in this course: .m.
Syllabus
This subject was originally offered in Course 13 (Department of Ocean Engineering) as 13.002J. In 2005, ocean engineering became part of Course 2 (Department of Mechanical Engineering), and this subject was renumbered 2.993J.
Prerequisite
18.03
Rationale
Computers are playing an increasingly important role in any science and engineering curriculum. At the same time there has certainly been a dramatic increase in computer literacy among the undergraduate population during the last decade. The flip side of this development is the enormous confidence the students have in the computers and the results they give. The MIT undergraduate curriculum has a number of subjects that are aimed at training the students in scientific and engineering programming, such as 1.00 and 10.001. These subjects are excellent in developing advanced programming skills, allowing the students to develop highly efficient and advanced computer programs. Unfortunately, due to lack of time, the numerical error and stability analysis which is the key to developing accurate and robust algorithms are only treated superficially in the MIT undergraduate curriculum.
The 6unit undergraduate subject, 13.002J, is aimed at filling this gap. This subject presents the fundamental formulation, methodology and techniques for numerical solution of engineering problems. The subject is initiated with fundamental principles of digital computing and the implications for algorithm accuracy and stability. Error propagation and stability analysis is introduced from first principles. The solution of systems of linear equations, (comprising 90% of numerical effort in science and engineering) is covered extensively, including direct (Gaussian elimination) and iterative techniques, sparse and banded matrices, and matrix inversions. The error and stability issues associated with solving linear systems will be covered extensively. The numerical treatment of eigenvalue problems is briefly discussed. Several lectures are devoted to solving nonlinear equations, including root finding. The concept of interpolation and its role as foundation for numerical differentiation and integration is introduced, emphasizing classical (Lagrange, Newton) polynomial interpolation. Numerical differentiation and integration is covered in depth, with particular emphasis on the error and convergence analysis. The final part of the course introduces the fundamentals of finitedifference solutions to ordinary differential equations, again with emphasis on error and convergence analysis.
The subject will be taught during the first 7 weeks of the term, with two 1.5hour lectures per week. The grading will be based on weekly homework assignments, with half being 'pen and paper' type dealing with error and stability analysis etc., and the other half involving actual algorithm development. Students are strongly encouraged to use MATLAB® (excluding builtin routines) and should see the instructor if they wish to use another programming language. At the end of the course, the students will have developed a number of algorithms which they can apply as a reliable tool in later subjects and projects.
Objectives
Objective 1
Understand the implications of digital number representation and digital arithmetic for computational science and engineering.

Outcome 1.1: Understand the fundamental principles of digital computing, including number representation and arithmetic operations.

Outcome 1.2: Understand the linkage between accuracy, stability and convergence.

Outcome 1.3: Perform error analysis for arithmetic operations.

Outcome 1.4: Understand the propagation of errors through complex numerical algorithms.

Outcome 1.5: Perform numerical stability analysis.
Objective 2
Develop and implement numerically stable and accurate algorithms for all the basic tasks of computational science and engineering:

Outcome 2.1: Develop stable algorithms for solving linear systems of equations.

Outcome 2.2: Develop efficient and stable algorithms for finding roots of nonlinear equations.

Outcome 2.3: Implement numerically stable recursion algorithms for evaluating mathematical functions.

Outcome 2.4: Understand the use of interpolation for numerical differentiation and integration.

Outcome 2.5: Develop stable solution algorithms for ordinary differential equations.
Textbook
Mathews, J. H., and K. D. Fink. Numerical Methods Using MATLAB®. 3rd ed. Upper Saddle River, NJ: Prentice Hall, 1998. ISBN: 9780132700429.
Grading
Course grading.
ACTIVITIES 
PERCENTAGES 
Homeworks 
60% 
Exam 
30% 
Class Participation 
10% 
Class Survey
During the first class, students are asked to fill out a survey to assess their level of knowledge and understanding in various areas of mathematics and programming languages.
Class SurveySpring 2005
Calendar
Course calendar.
LEC # 
TOPICS 
KEY DATES 
1 
Introduction
Computer Architecture
Number Representations
Recursion 
Problem set 1 out
Problem set 0 (Inclass assignment) 
2 
Error Propagation
Error Estimation
Condition Numbers 
MATLAB® handout 
3 
Linear Systems of Equations: Cramer's Rule
Gaussian Elimination 
Problem set 1 due 
4 
Linear Systems: Gaussian Elimination
Pivoting
LU Factorization
Error Analysis 
Problem set 2 out 
5 
Linear Systems: Tridiagonal Systems
Special Matrices 

6 
Linear Systems: Iterative Methods
Convergence of Iterative Schemes 

7 
Roots of Nonlinear Equations: Bisection
NewtonRalphson Iteration 
Problem set 2 due 
8 
Interpolation of Functions by Polynomials
Lagrange Interpolation
Triangular Family 
Problem set 3 out 
9 
Numerical Differentiation and Integration
Error Estimates 

10 
Ordinary Differential Equations
Initial Value Problems: Euler and RungeKutta Methods 
Problem set 3 due
Problem set 4 out
Takehome exam out; due 8 days later 
11 
Ordinary Differential Equations (cont.)
Boundary Value Problems: Finite Difference Methods 

12 
Minimization Problems
Least Square Approximation
Optimization 
Problem set 4 due 