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, including root finding, matrix algebra, integration and interpolation, ordinary and partial differential equations. We learn how to use MATLAB to solve numerical problems, and 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. They should have a working knowledge of 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 from the link

And watch the promotional video from the link


  • Scientific Computing
    • MATLAB is a high-level programming language extensively utilized by engineers for numerical computation and visualization. We will learn the basics of MATLAB: how real numbers are represented in double precision; how to perform arithmetic with MATLAB; how to use scripts and functions; how to represent vectors and matrices; how to draw line plots; and how to use logical variables, conditional statements, for loops and while loops. For your programming project, you will write a MATLAB code to compute the bifurcation diagram for the logistic map.
  • Root Finding
    • Root finding is a numerical technique used to determine the roots, or zeros, of a given function. We will explore several root-finding methods, including the Bisection method, Newton's method, and the Secant method. We will also derive the order of convergence for these methods. Additionally, we will demonstrate how to compute the Newton fractal using Newton's method in MATLAB, and discuss MATLAB functions that can be used to find roots. For your programming project, you will write a MATLAB code using Newton's method to compute the Feigenbaum delta from the bifurcation diagram for the logistic map.
  • Matrix Algebra
    • Numerical linear algebra is the term used for matrix algebra performed on a computer. When conducting Gaussian elimination with large matrices, round-off errors may compromise the computation. These errors can be mitigated using the method of partial pivoting, which involves row interchanges before each elimination step. The LU decomposition algorithm must then incorporate permutation matrices. We will also discuss operation counts and the big-Oh notation for predicting the increase in computational time with larger problem sizes. We will show how to count the number of required operations for Gaussian elimination, forward substitution, and backward substitution. We will explain the power method for computing the largest eigenvalue of a matrix. Finally, we will show how to use Gaussian elimination to solve a system of nonlinear differential equations using Newton's method. For your programming project, you will write a MATLAB code that applies Newton's method to the Lorenz equations.
  • Quadrature and Interpolation
    • The computation of definite integrals is known as quadrature. We will explore the fundamentals of quadrature, including elementary formulas for the Trapezoidal rule and Simpson’s rule; development of composite integration rules; an introduction to Gaussian quadrature; construction of an adaptive quadrature routine where the software determines the appropriate integration step size; and the usage of the MATLAB function integral.m. Additionally, we will learn about interpolation. A good interpolation routine can estimate function values at intermediate sample points. We will learn about linear interpolation, commonly employed for plotting data with numerous points; and cubic spline interpolation, used when data points are sparse. For your programming project, you will write a MATLAB code to compute the zeros of a Bessel function. This task requires the combination of both quadrature and root-finding routines.
  • Ordinary Differential Equations
    • We will learn about the numerical integration of ordinary differential equations (ODEs). We will introduce the Euler method, a single-step, first-order method, and the Runge-Kutta methods, which extend the Euler method to multiple steps and higher order, allowing for larger time steps. We will show how to construct a family of second-order Runge-Kutta methods, discuss the widely-used fourth-order Runge-Kutta method, and adopt these methods for solving systems of ODEs. We will show how to use the MATLAB function ode45.m, and how to solve a two-point boundary value ODE using the shooting method. For your programming project, you will conduct a numerical simulation of the gravitational two-body problem.
  • Partial Differential Equations
    • We will learn how to solve partial differential equations (PDEs). While this is a vast topic with various specialized solution methods, such as those found in computational fluid dynamics, we will provide a basic introduction to the subject. We will categorize PDE solutions into boundary value problems and initial value problems. We will then apply the finite difference method for solving PDEs. We will solve the Laplace equation, a boundary value problem, using two methods: a direct method via Gaussian elimination; and an iterative method, where the solution is approached asymptotically. We will next solve the one-dimensional diffusion equation, an initial value problem, using the Crank-Nicolson method. We will also employ the Von Neumann stability analysis to determine the stability of time-integration schemes. For your programming project, you will solve the two-dimensional diffusion equation using the Crank-Nicolson method.

Taught by

Jeffrey R. Chasnov


5.0 rating, based on 48 Class Central reviews

4.9 rating at Coursera based on 304 ratings

Start your review of Numerical Methods for Engineers

  • Anonymous
    This is probably the most practical mathematical course available on the internet. A course for everyone, from Undergrad to doctoral students and professionals working in the field. Most of the stuff covered is really important for research, optimization, and practicality. One also comes to appreciate the power and EASE (intentionally capitalized) in using MATLAB for their respective tasks. The exercises are fun and the lectures are comprehensive.
    Absolutely worth taking
  • Anonymous
    This is probably the best course I have taken on coursera. It delves into sufficient depth to be meaningful and to encourage further learning as compared to most other courses where no mathematical depth is provided. Additionally, the virtual tools are used extremely effectively in a way that learning does not feel like a chore. Moreover, the way Dr Chaznov connects the topics to broader ideas such as in the case of Fractyls is particularly fascinating and further adds to the appeal of the course. Some additional reading material would be very highly appreciated though for those who wish to go in further detail.
  • Anonymous
    While tackling the "Numerical Methods for Engineers" course, I encountered coding challenges due to my limited expertise. Despite this hurdle, the course was incredibly beneficial. It offered a wealth of practical knowledge essential for engineering applications. The instructors' clear explanations made complex concepts understandable. Overall, it's a valuable resource for anyone, like me, aiming to grasp numerical methods in engineering.
  • Krishna Chand Avatar, G R
    The course was excellent! The instructor Prof. Jeff Chasnov delivered insightful and detailed lectures. The programming assignments were challenging and helped to hone my coding skills in MATLAB.
  • 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
    The perfect organization and simple to describe complicated subjects. Thank you for this course and the great learning adventure.
  • Anonymous
    Comprehensive MATLAB course, covers key concepts effectively. Engaging exercises enhance practical skills.
  • Anonymous
    The Numerical Methods for Engineers course surpassed my expectations with its comprehensive content, practical approach, and well-structured organization. Covering a wide range of topics including root finding, numerical integration, interpolation,…
  • 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.
  • Anonymous
    Very good design to cover most important aspects of numerical methods, which are very easy to understand to beginners! Compared to self-studying a textbook, this course is a much better way to teach yourself. It has a lot of interactive Matlab problems to let you code your own algorithm. Feel very proud that I finished the last Matlab problem: 2D unsteady diffusion problem. It contains a lot of things. Once it passed, you will thank your efforts.
  • 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 :)
  • Anonymous
    Es un curso bastante completo y compacto. Los módulos están bien divididos con los temas que son fundamentales para los ingenieros y con proyectos bastante interesantes en donde podemos aplicar lo aprendido durante el módulo.
  • Anonymous
    I enjoyed this course. I was really help to use MATLAB in conjunction with course concepts. The concepts start to get a little difficult near the end but I learned a lot.
  • Anonymous
    This course is perfect for someone starting with numerical methods and matlab programming. Short lectures, well distributed course content and interesting assignment problems.
  • Anonymous
    Good course, I learned so much and I hope to continue learning with the videos of this course.
    Thanks very much for publish it
    Myriam Rojas
  • Anonymous
    All of the lessons on the topic are thoroughly explained. All the activities are also manageable and it also has practice exams.
  • 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
    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.
  • Numerical Methods for Engineers Organized by The Hong Kong University of Science and Technology through Coursera online class is very significant course to all engineering students of higher learning. i would like to recommend this course to all engineering students to refresh his/her brain
  • 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.

Never Stop Learning.

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