Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

The Hong Kong University of Science and Technology

Numerical Methods for Engineers

The Hong Kong University of Science and Technology via Coursera


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:

Watch the promotional video:


  • 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, round-off 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 big-Oh 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 integrals---also 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 root-finding 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 single-step, first-order method. The Runge-Kutta methods extend the Euler method to multiple steps and higher order, with the advantage that larger time-steps can be made. We show how to construct a family of second-order Runge-Kutta methods, and introduce you to the widely-used fourth-order Runge-Kutta 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 two-point boundary value ode using the shooting method. Your programming project will be the numerical simulation of the gravitational two-body 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 one-dimensional diffusion equation, an initial value problem. The Crank-Nicolson method of solution is derived. We also show how to use the Von Neumann stability analysis to determine the stability of our time-integration schemes. The final programming project will the solution of the two-dimensional diffusion equation using the Crank-Nicolson method.

Taught by

Jeffrey R. Chasnov

Related Courses


4.9 rating, based on 11 reviews

Start your review of Numerical Methods for Engineers

  • Profile image for Allaev Sherzod
    Allaev Sherzod
    I entered PhD course, but my background in advanced math was very bad. I required to learn MATLAB, but I completely forgot linear algebla and even didn't know how to solve ordinary and partial differential equations. With the courses of Professor Chasnov I was able to increase my knowledge in 5 months. First was Linear algebra, then vector calculus, then differential equations. Numerical methods for engineers was my 4th course which is taught by Professor Chasnov. It wasn't easy, but now I can successfully implement obtained knowledge and MATLAB skills in my studies. Thank you very much professor Chasnov!
  • Anonymous
    This course was extremely helpful to me. All the concepts were taught exceptionally well. The quizes and assignments were so much helpful in reviewing the taught lessons. Even though, at first, it was difficult for me to code in mathlab; at the end of the course, I was so much confident in my coding skills.
  • Anonymous
    Very good coverage of the most common numerical methods used to solve different engineering problems. The flow of the course is really good with videos and exercises, quizzes and programming assignments to solve interesting physical problems. Another brilliant course by prof Jeff Chasnov.
  • Anupam Chakraborty
    This course served as an excellent introduction to MATLAB programming. It also helped me recollect many concepts numerical techniques I learnt earlier. The interactive nature of the course, in terms of practice programs and exercises, makes it very useful for beginners.
  • Anonymous
    Numerical Methods for Engineers taught me so many new things about scientific computing that I had never known before. Particularly in the details of matrix equations and ODE solutions. Thank you Professor Chasnov!
    I have learned a lot of thinking. This course is useful for my work. the Numerical method for engineers course is good for research scholars in all the science departments, thank you, sir
  • Anonymous
    excellent video lectures and lecture notes. good choice of topics. uses matlab (provided by the coure).
  • Anonymous
    This course is very useful to learn Numerical Analysis in a very easy manner with matlab as well. Thankyou so much sir
  • Anonymous
    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.
  • Anonymous
    Very interesting topics and projects ! It's a very good introduction/first course for numerical methods, specially for solving PDE.
  • Anonymous
    This is too hard for me as I am not an engineer and I will spend more effort on the more basic course.

Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free