Introduction to Numerical Analysis for Engineering

Spring 2005

Course Highlights

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.

Course Description

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 finite-difference 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.

Technical Requirements

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 6-unit 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 non-linear 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 finite-difference 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.5-hour 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 built-in 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.