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


This course 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


5.0 rating, based on 33 Class Central reviews

4.8 rating at Coursera based on 233 ratings

Start your review of Numerical Methods for Engineers

  • Anonymous
    Excellent course on the numerical methods.
    This course covers vast amount of numerical methods, from the
    fundamentals of number representations in computer programs
    to algorithms of interpolation and differentiation, to advanced
    topics of numerical solutions to ODEs and PDEs. The methods
    learned can be directly put into practice to solve engineering and
    physics problems. Emphasis also put on MATLAB/Octave
    programming with the algoritmhs learned so students can see
    the concrete results/visualization.
  • 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
    As a STEM enthusiast and a former university student who studied plenty of graduate-level courses for the Bachelor of Art, I have plenty of things to say about the structure of your courses:

    (1) All courses are brilliant and interactive.
    (2) Great and challenging assessments.
    (3) Also very interesting share of experience from fields of physics, which is something I would like to learn more about.

    Hope to follow up and also learn more from your other courses!
  • Anonymous
    Excellent and detailed explanation about how to use numerical methods to solve math and physical problems. Also, teach us how to do programming in MATLAB. If you have some background in using MATLAB every week's coding project may not be so difficult.
  • Anonymous
    This course helped me understand more of my lessons from my course, numerical solutions to engg problems. I love the matlab applications of the lessons and the lectre videos are very precise and not boring to listen to at all.
  • Anonymous
    Great course with good examples. Looking forward to other courses related to this. Thank you.
    The Matlab coding did gave some trouble. But the theory was very well explaned.
  • Anonymous
    P​rof. Chasnov is one the best math's teacher I've ever known. Although I prefer Python, the course was great especially in descripting mathematical foundations. Thanks a lot!
  • Anonymous
    I have learned a lot through out the length of this course. It helpled me understand every lesson throughly. the mathlab works are very helpful. thank you very much
  • Anonymous
    Great course. It is good for learning the basics of Matlab programming, and a get a start on solving advanced mathematics/calculus problems,
  • Anonymous
    Great experience .The course was relevant to the area.Thanks very much for everything.
    Great efforts and great courses and content
  • Anonymous
    Engaged learning experience. Challenging but clear learning materials. The professor replied quickly in the discussion forum.
  • Anonymous
    Another excellent course from Prof. Chasnov. Very thorough intro to Numerical Analysis. Very easy to follow book and lectures.
  • Anonymous
    It is a brilliant course! It's very well organized, step-by-step, clear, and helpful. I learned a lot from it.
  • Anonymous
    It is a brilliant course! It's very well organized, step-by-step, clear, and helpful. I learned a lot from it.
  • Anonymous
    the course is too good and the professors is also too good...........!!!!! I liked the entire course
  • Anonymous
    Awesome course!
    The content is well organised and builds up to the final project. I started this course hoping to learn how to solve the 2D diffusion equation by iterative approaches such as SOR and Red-Black ordering to run in devices with low computation and memory resources. The final project stops a step before this but teaches all that I would need to implement my solution. I appreciate the effort put in this course and it's preliminary courses (Matrix Algebra for Engineers, Differential Equations for Engineers and Vector Calculus for Engineers).
    Thanks to the entire team that put this together. I will definitely be buying my well earned certificate for this :)
  • Profile image for Nguyen Le
    Nguyen Le
    I love Prof. Chasnov's teaching style. This course is much more interesting with the Matlab programming assignment. The last project is the most challenging one as Professor Chasnov warned. It took me a while to work through the detail, but the effort is very rewarding. I learned not just numerical analysis, but Matlab skill and most importantly a new programming style for vector/engineering application.

    I highly recommend this class,

    Thank you so much,

    Nguyen Le
  • Anonymous
    Another great course by Professor Chasnov. Challenging at times, but I learned a lot through lectures, readings, and MATLAB programming assignments. A really great course if you haven't studied much in the way of numerical methods before, and want to learn a lot about it. Make sure to take a look at the prerequisites before diving in though.
  • Anonymous
    It's a very useful course with educational and practical exercises. Professor Chasnov teaches with much clarity and enthusiasm. The concepts are widely used in academic areas and the student will be ready to take and advanced course in his/her field.
  • Anonymous
    Very nice introduction to numerical methods. The teacher explains the topics with passion and he is very clear in his explanations. The projects at the end of each week are very useful to put in practice the methods explained in the course.

Never Stop Learning.

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