Numerical Methods for Engineers

The Hong Kong University of Science and Technology via Coursera

Go to Course: https://www.coursera.org/learn/numerical-methods-engineers

Introduction

# Course Review: Numerical Methods for Engineers (Coursera) ## Overview The "Numerical Methods for Engineers" course on Coursera is an exceptional opportunity for engineering students and professionals who want to deepen their understanding of numerical methods essential for solving complex engineering problems. This course is designed to impart crucial skills in mathematical modeling using numerical techniques, particularly through MATLAB—a leading software tool in engineering analysis. Participants will explore a range of topics, including root finding, matrix algebra, numerical integration, and the solutions of ordinary and partial differential equations. This course is ideal for anyone with a firm grasp of matrix algebra, differential equations, and vector calculus, offering practical programming projects and hands-on experience throughout its syllabus. ## Course Syllabus The course is divided into several focused modules, each tackling vital aspects of numerical methods: ### 1. Scientific Computing The journey begins with an introduction to MATLAB, covering the representation of real numbers, script and function writing, and visualization techniques. Students will learn how to create vectors and matrices, plot graphs, and utilize programming constructs like loops and conditional statements. The initial project, involving the computation of the bifurcation diagram for the logistic map, sets the stage for practical application. ### 2. Root Finding This section delves into various root-finding techniques, including the Bisection method, Newton’s method, and the Secant method. Students will analyze the order of convergence for these methods and apply them in larger contexts, such as deriving the Newton fractal in MATLAB. The project focuses on employing Newton's method to compute the Feigenbaum delta, enhancing understanding through practical application. ### 3. Matrix Algebra Numerical linear algebra is explored next, emphasizing computational methods used in matrix operations. Students will learn about Gaussian elimination, partial pivoting, and LU decomposition with permutation matrices. The concept of error in computations is well-explained, alongside hands-on experiences with Newton's method applied to the Lorenz equations as a practical project. ### 4. Quadrature and Interpolation Students will engage with the fundamentals of quadrature—the method of numerical integration—learning tools like the Trapezoidal rule and Simpson’s rule, and advancing to Gaussian quadrature techniques. A project related to computing the zeros of a Bessel function ties together quadrature and root finding, emphasizing the interrelatedness of these numerical methods. ### 5. Ordinary Differential Equations (ODEs) The course covers the numerical integration of ODEs, introducing the Euler method and various Runge-Kutta methods. This section helps students understand how to solve systems of ODEs using MATLAB functions like `ode45.m` and tackle boundary value problems through simulations, including a significant project where students simulate the gravitational two-body problem. ### 6. Partial Differential Equations (PDEs) The final module offers a foundational understanding of PDEs and their mathematical techniques. It guides students through finite difference methods and their applications to common PDEs like the Laplace and diffusion equations. Practical projects include utilizing the Crank-Nicolson method for solving a two-dimensional diffusion equation, further solidifying comprehension through active engagement. ## Recommendations Overall, the "Numerical Methods for Engineers" course on Coursera is highly recommended for anyone looking to enhance their computational skills in engineering. The structure not only provides a robust theoretical foundation but also emphasizes practical applications through programming assignments that offer real-world relevance. **Pros:** - Comprehensive and well-structured syllabus covering essential numerical methods. - Extensive hands-on experience with MATLAB, a crucial tool in engineering. - Engaging programming projects that reinforce theoretical concepts. **Cons:** - Assumes prior knowledge in matrix algebra and differential equations, which might be a hurdle for some learners. - MATLAB's proprietary nature may limit access for those unable to obtain or use the software. Whether preparing for a professional engineering career or seeking to expand your skill set, this course empowers learners with essential numerical computing techniques and the confidence to tackle complex engineering challenges. Enroll today if you’re ready to elevate your engineering capabilities!

Syllabus

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.

Overview

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 knowled

Skills

Reviews

An excellent course on numerical methods with detailed, crystal clear derivations using Taylor's theorem for each numerical method.

Very nice introduction to numerical methods.\n\nThe MATLAB assignments were challenging but worth the effort.\n\nMany thanks to Prof Chasnov.

very Fantastic core course for all engineering and science students to take. Many thanks again to Prof. Jeffrey Chasnov and everyone for making this happen. God bless you.

very enlightening course. It was a perfect blend of practical theoretical knowlege

Hello, thank you for your efforts in the course. It was very useful and beautiful. I hope you will always be healthy and happy. Mohammad Pakzad from Iran.