Numerical Methods for Engineers
The Hong Kong University of Science and Technology via Coursera

44

 Write review
Overview
Class Central Tips
Numerical Methods for Engineers covers the most important numerical methods that an engineer should know. We derive basic algorithms in root finding, matrix algebra, integration and interpolation, ordinary and partial differential equations. We learn how to use MATLAB to solve numerical problems. Access to MATLAB online and the MATLAB grader is given to all students who enroll.
We assume students are already familiar with the basics of matrix algebra, differential equations, and vector calculus. Students should have already studied a programming language, and be willing to learn MATLAB.
The course contains 74 short lecture videos and MATLAB demonstrations. After each lecture or demonstration, there are problems to solve or programs to write. The course is organized into six weeks, and at the end of each week there is an assessed quiz and a longer programming project.
Download the lecture notes:
http://www.math.ust.hk/~machas/numericalmethodsforengineers.pdf
Watch the promotional video:
https://youtu.be/qFJGMBDfFMY
We assume students are already familiar with the basics of matrix algebra, differential equations, and vector calculus. Students should have already studied a programming language, and be willing to learn MATLAB.
The course contains 74 short lecture videos and MATLAB demonstrations. After each lecture or demonstration, there are problems to solve or programs to write. The course is organized into six weeks, and at the end of each week there is an assessed quiz and a longer programming project.
Download the lecture notes:
http://www.math.ust.hk/~machas/numericalmethodsforengineers.pdf
Watch the promotional video:
https://youtu.be/qFJGMBDfFMY
Syllabus
 Scientific Computing
 This week we learn how to program using MATLAB. We learn how real numbers are represented in double precision and how to do basic arithmetic with MATLAB. We learn how to use scripts and functions, how to represent vectors and matrices, how to draw line plots, how to use logical variables, conditional statements, for loops and while loops. Your programming project will be to write a MATLAB code to compute the bifurcation diagram for the logistic map.
 Root Finding
 Root finding is a numerical technique to find the zeros of a function. We learn the bisection method, Newton's method and the secant method. We derive the order of convergence of these methods. A computation of a Newton fractal is demonstrated using MATLAB, and we discuss MATLAB functions that can find roots. Your programming project will be to write a MATLAB code using Newton's method to compute the Feigenbaum delta from the bifurcation diagram for the logistic map.
 Matrix Algebra
 Matrix algebra done on the computer is often called numerical linear algebra. When performing Gaussian elimination, roundoff errors can ruin the computation and must be handled using the method of partial pivoting, where row interchanges are performed before each elimination step. The LU decomposition algorithm then includes permutation matrices. We introduce operation counts, and teach the bigOh notation for predicting the increase in computational time with larger problem size. We show how to count operations for Gaussian elimination and forward and backward substitution. The power method for computing the largest eigenvalue and associated eigenvector of a matrix is explained. Finally, we show how to use Gaussian elimination to solve a system of nonlinear differential equations using Newton's method. Your programming project will be to write a MATLAB code that applies Newton's method to the Lorenz equations.
 Quadrature and Interpolation
 In the first part of this week, we learn how to compute definite integralsalso called quadrature. We begin by learning the basics of quadrature, which include the elementary formulas for the trapezoidal rule and Simpson's rule, and how these formulas can be used to develop composite integration rules. We then learn about Gaussian quadrature, and how to construct an adaptive quadrature routine in which the software itself determines the appropriate integration step size. We conclude this section by learning how to use the MATLAB function integral.m. In the second part of this week we learn about interpolation. Given a sample of function values, a good interpolation routine will be able to estimate the function values at intermediate sample points. Linear interpolation is widely used, particularly when plotting data consisting of many points. Here, we develop the more sophisticated method of cubic spline interpolation, to be used if the sample points are more sparse. Your programming project will be to write a MATLAB code to compute the zeros of a Bessel function. This requires combining both quadrature and rootfinding routines.
 Ordinary Differential Equations
 This week we learn about the numerical integration of odes. The most basic method is called the Euler method, and it is a singlestep, firstorder method. The RungeKutta methods extend the Euler method to multiple steps and higher order, with the advantage that larger timesteps can be made. We show how to construct a family of secondorder RungeKutta methods, and introduce you to the widelyused fourthorder RungeKutta method. These methods are easily adopted for solving systems of odes. We will show you how to use the MATLAB function ode45.m, and how to solve a twopoint boundary value ode using the shooting method. Your programming project will be the numerical simulation of the gravitational twobody problem.
 Partial Differential Equations
 This week we learn how to solve partial differential equations. This is a vast topic, and research areas such as computational fluid dynamics have many specialized solution methods. Here, we only provide a taste of this subject. We divide the numerical solutions of pdes into boundary value problems and initial value problems, and apply the finite difference method of solution. We first show how to solve the Laplace equation, a boundary value problem. Two methods are illustrated: a direct method where the solution is found by Gaussian elimination; and an iterative method, where the solution is approached asymptotically. Second, we show how to solve the onedimensional diffusion equation, an initial value problem. The CrankNicolson method of solution is derived. We also show how to use the Von Neumann stability analysis to determine the stability of our timeintegration schemes. The final programming project will the solution of the twodimensional diffusion equation using the CrankNicolson method.
Taught by
Jeffrey R. Chasnov
Related Courses
Reviews
4.5 rating, based on 2 reviews
Showing Class Central Sort

Very useful course for introduction to numerical methods for engineers. I wish I'd had the chance to learn this material when I was an undergrad.

This is too hard for me as I am not an engineer and I will spend more effort on the more basic course.