• For Individuals
  • For Businesses
  • For Universities
  • For Governments
Coursera
  • Online Degrees
  • Careers
  • Log In
  • Join for Free
    Coursera
    Ludwig-Maximilians-Universität München (LMU)
    Computers, Waves, Simulations: A Practical Introduction to Numerical Methods using Python
    • About
    • Modules
    • Recommendations
    • Testimonials
    • Reviews
    1. Browse
    2. Physical Science and Engineering
    3. Research Methods
    Ludwig-Maximilians-Universität München (LMU)

    Computers, Waves, Simulations: A Practical Introduction to Numerical Methods using Python

    Heiner Igel

    Instructor: Heiner Igel

    26,249 already enrolled

    9 modules
    Gain insight into a topic and learn the fundamentals.
    4.8

    (386 reviews)

    Intermediate level

    Recommended experience

    Recommended experience

    Intermediate level

    Basic knowledge of calculus and analysis, series, partial differential equations, and linear algebra.

    Flexible schedule
    Approx. 35 hours
    Learn at your own pace
    97%
    Most learners liked this course

    9 modules
    Gain insight into a topic and learn the fundamentals.
    4.8

    (386 reviews)

    Intermediate level

    Recommended experience

    Recommended experience

    Intermediate level

    Basic knowledge of calculus and analysis, series, partial differential equations, and linear algebra.

    Flexible schedule
    Approx. 35 hours
    Learn at your own pace
    97%
    Most learners liked this course
    • About
    • Modules
    • Recommendations
    • Testimonials
    • Reviews

    What you'll learn

    • How to solve a partial differential equation using the finite-difference, the pseudospectral, or the linear (spectral) finite-element method.

    • Understanding the limits of explicit space-time simulations due to the stability criterion and spatial and temporal sampling requirements.

    • Strategies how to plan and setup sophisticated simulation tasks.

    • Strategies how to avoid errors in simulation results.

    Skills you'll gain

    • Differential Equations
    • Jupyter
    • Simulations
    • Numerical Analysis
    • NumPy
    • Finite Element Methods
    • Python Programming
    • Vibrations
    • Mathematical Modeling
    • Distributed Computing
    • Linear Algebra
    • Mechanics
    • Applied Mathematics
    • Engineering Analysis

    Details to know

    Shareable certificate

    Add to your LinkedIn profile

    Assessments

    9 assignments

    Taught in English

    See how employees at top companies are mastering in-demand skills

    Learn more about Coursera for Business
     logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal
    Coursera Career Certificate

    Earn a career certificate

    Add this credential to your LinkedIn profile, resume, or CV

    Share it on social media and in your performance review

    Coursera Career Certificate

    There are 9 modules in this course

    Interested in learning how to solve partial differential equations with numerical methods and how to turn them into python codes? This course provides you with a basic introduction how to apply methods like the finite-difference method, the pseudospectral method, the linear and spectral element method to the 1D (or 2D) scalar wave equation. The mathematical derivation of the computational algorithm is accompanied by python codes embedded in Jupyter notebooks. In a unique setup you can see how the mathematical equations are transformed to a computer code and the results visualized. The emphasis is on illustrating the fundamental mathematical ingredients of the various numerical methods (e.g., Taylor series, Fourier series, differentiation, function interpolation, numerical integration) and how they compare. You will be provided with strategies how to ensure your solutions are correct, for example benchmarking with analytical solutions or convergence tests. The mathematical aspects are complemented by a basic introduction to wave physics, discretization, meshes, parallel programming, computing models.

    The course targets anyone who aims at developing or using numerical methods applied to partial differential equations and is seeking a practical introduction at a basic level. The methodologies discussed are widely used in natural sciences, engineering, as well as economics and other fields.

    The use of numerical methods to solve partial differential equations is motivated giving examples form Earth sciences. Concepts of discretization in space and time are introduced and the necessity to sample fields with sufficient accuracy is motivated (i.e. number of grid points per wavelength). Computational meshes are discussed and their power and restrictions to model complex geometries illustrated. The basics of parallel computers and parallel programming are discussed and their impact on realistic simulations. The specific partial differential equation used in this course to illustrate various numerical methods is presented: the acoustic wave equation. Some physical aspects of this equation are illustrated that are relevant to understand its solutions. Finally Jupyter notebooks are introduced that are used with Python programs to illustrate the implementation of the numerical methods.

    What's included

    6 videos1 reading1 assignment1 ungraded lab

    6 videos•Total 62 minutes
    • W1V1 General Introduction•5 minutes•Preview module
    • W1V2 Spatial scales and meshing•12 minutes
    • W1V3 Waves in a discrete world•6 minutes
    • W1V4 Parallel Simulations•10 minutes
    • W1V5 A bit of wave physics•16 minutes
    • W1V6 Python and Jupyter notebooks•10 minutes
    1 reading•Total 10 minutes
    • Jupiter Notebooks and Python•10 minutes
    1 assignment•Total 45 minutes
    • Discretization, Waves, Computers•45 minutes
    1 ungraded lab•Total 60 minutes
    • W1P1 Getting into Jupyter Notebook•60 minutes

    In Week 2 we introduce the basic definitions of the finite-difference method. We learn how to use Taylor series to estimate the error of the finite-difference approximations to derivatives and how to increase the accuracy of the approximations using longer operators. We also learn how to implement numerical derivatives using Python.

    What's included

    8 videos1 assignment3 ungraded labs

    8 videos•Total 40 minutes
    • W2V1 Introduction•3 minutes•Preview module
    • W2V2 Definitions•3 minutes
    • W2V3 Taylor Series•5 minutes
    • W2V4 Python: First Derivative•10 minutes
    • W2V5 Operators•5 minutes
    • W2V6 High Order•3 minutes
    • W2V7 Python: High Order•7 minutes
    • W2V8 Summary•1 minute
    1 assignment•Total 20 minutes
    • Taylor Series and Finite Differences•20 minutes
    3 ungraded labs•Total 180 minutes
    • W2_P1 First Derivative•60 minutes
    • W2P2 Numerical Second Derivative•60 minutes
    • W2P3 High-Order Taylor Operators•60 minutes

    We develop the finite-difference algorithm to the acoustic wave equation in 1D, discuss boundary conditions and how to initialize a simulation example. We look at solutions using the Python implementation and observe numerical artifacts. We analytically derive one of the most important results of numerical analysis – the CFL criterion which leads to a conditionally stable algorithm for explicit finite-difference schemes.

    What's included

    9 videos1 assignment2 ungraded labs

    9 videos•Total 49 minutes
    • W3V1 Wave Equation•1 minute•Preview module
    • W3V2 Algorithm•4 minutes
    • W3V3 Boundaries, Sources•4 minutes
    • W3V4 Initialization•4 minutes
    • W3V5 Python: Waves in 1D•5 minutes
    • W3V6 Analytical Solutions•4 minutes
    • W3V7 Python: Waves in 1D•3 minutes
    • W3V8 Von Neumann Analysis•19 minutes
    • W3V9 Summary•1 minute
    1 assignment
    • Acoustic Wave Equation with Finite Differences in 1D - CFL criterion•0 minutes
    2 ungraded labs•Total 120 minutes
    • W3P1 Acoustic Waves 1D•60 minutes
    • W3P2 Acoustic Waves 1D - Comparison with analytical solution•60 minutes

    We develop the solution to the 2D acoustic wave equation, compare with analytical solutions and demonstrate the phenomenon of numerical (non-physical) anisotropy. We extend the von Neumann Analysis to 2D and derive numerical anisotropy analytically. We learn how to initialize a realistic physical problem and illustrate that 2D solution are already quite powerful to understand complex wave phenomena. We introduced the 1D elastic wave equation and show the concept of staggered-grid schemes with the coupled first-order velocity-stress formulation.

    What's included

    10 videos1 assignment5 ungraded labs

    10 videos•Total 83 minutes
    • W4V1 Acoustic Waves 2D – Analytical Solutions•8 minutes•Preview module
    • W4V2 Acoustic Waves 2D – Finite-Difference Algorithm•6 minutes
    • W4V3 Python: Acoustic Waves 2D•8 minutes
    • W4V4 Acoustic Waves 2D – von Neumann Analysis•5 minutes
    • W4V5 Acoustic Waves 2D – Waves in a Fault Zone•8 minutes
    • W4V6 Python: Waves in a Fault Zone•9 minutes
    • W4V7 Elastic Wave Equation – Staggered Grids•16 minutes
    • W4V8 Python: Staggered Grids•5 minutes
    • W4V9 Improving numerical accuracy•11 minutes
    • W4V10 Wrap up•3 minutes
    1 assignment•Total 45 minutes
    • Acoustic Wave Equation in 2D - Numerical Anisotropy - Staggered Grids•45 minutes
    5 ungraded labs•Total 300 minutes
    • W4P1 Acoustic Wave Equation - Homogeneous Case•60 minutes
    • W4P2 Acoustic Wave Equation - Heterogeneous Case•60 minutes
    • W4P3 Optimal Operators •60 minutes
    • W4P4 Staggered Grid•60 minutes
    • W4P5 Advection Equation - 1D•60 minutes

    We start with the problem of function interpolation leading to the concept of Fourier series. We move to the discrete Fourier series and highlight their exact interpolation properties on regular spatial grids. We introduce the derivative of functions using discrete Fourier transforms and use it to solve the 1D and 2D acoustic wave equation. The necessity to simulate waves in limited areas leads us to the definition of Chebyshev polynomials and their uses as basis functions for function interpolation. We develop the concept of differentiation matrices and discuss a solution scheme for the elastic wave equation using Chebyshev polynomials.

    What's included

    9 videos1 assignment4 ungraded labs

    9 videos•Total 61 minutes
    • W5V1 Function Interpolation – Trigonometric basis functions•5 minutes•Preview module
    • W5V2 Fourier Series - Examples•5 minutes
    • W5V3 Discrete Fourier Series•5 minutes
    • W5V4 The Fourier Transform - Derivative•6 minutes
    • W5V5 Solving the 1D/2D Wave Equation with Python•11 minutes
    • W5V6 Convolutional Operators•6 minutes
    • W5V7 Chebyshev Polynomials - Derivatives•8 minutes
    • W5V8 Chebyshev Method – 1D Elastic Wave Equation•7 minutes
    • W5V9 Summary•3 minutes
    1 assignment•Total 45 minutes
    • Pseudospectral method•45 minutes
    4 ungraded labs•Total 240 minutes
    • W5P1 Fourier Acoustic Wave Equation - 1D•60 minutes
    • W5P2 Fourier Acoustic Wave Equation - 2D•60 minutes
    • W5P3 Chebyshev Derivative•60 minutes
    • W5P4 Chebyshev Elastic Wave Equation - 1D•60 minutes

    We introduce the concept of finite elements and develop the weak form of the wave equation. We discuss the Galerkin principle and derive a finite-element algorithm for the static elasticity problem based upon linear basis functions. We also discuss how to implement boundary conditions. The finite-difference based relaxation method is derived for the same equation and the solution compared to the finite-element algorithm.

    What's included

    5 videos1 assignment1 ungraded lab

    5 videos•Total 41 minutes
    • W6V1 Introduction - Static Elasticity•7 minutes•Preview module
    • W6V2 Weak Form - Galerkin Principle•7 minutes
    • W6V3 Solution Scheme•9 minutes
    • W6V4 Boundary Conditions - System Matrices•9 minutes
    • W6V5 Relaxation Method - Python: Static Eleasticity•7 minutes
    1 assignment•Total 45 minutes
    • Finite-element method - Static problem•45 minutes
    1 ungraded lab•Total 60 minutes
    • W6P1 Static Elasticity•60 minutes

    We extend the finite-element solution to the elastic wave equation and compare the solution scheme to the finite-difference method. To allow direct comparison we formulate the finite-difference solution in matrix-vector form and demonstrate the similarity of the linear finite-element method and the finite-difference approach. We introduce the concept of h-adaptivity, the space-dependence of the element size for heterogeneous media.

    What's included

    7 videos1 assignment1 ungraded lab

    7 videos•Total 56 minutes
    • W7V1Introduction - Dynamic Elasticity•6 minutes•Preview module
    • W7V2 Solution Algorithm - 1D Elastic Case•12 minutes
    • W7V3 Differentiation Matrices•8 minutes
    • W7V4 Python: 1D Elastic Wave Equation•11 minutes
    • W7V5 h-adaptivity•6 minutes
    • W7V6 Shape Functions•9 minutes
    • W7V7 Dynamic Elasticity - Summary•2 minutes
    1 assignment•Total 45 minutes
    • Dynamic elasticity - Finite elements•45 minutes
    1 ungraded lab•Total 60 minutes
    • W7P1 Elastic Wave Equation - 1D•60 minutes

    We introduce the fundamentals of the spectral-element method developing a solution scheme for the 1D elastic wave equation. Lagrange polynomials are discussed as the basis functions of choice. The concept of Gauss-Lobatto-Legendre numerical integration is introduced and shown that it leads to a diagonal mass matrix making its inversion trivial.

    What's included

    7 videos1 assignment2 ungraded labs

    7 videos•Total 50 minutes
    • W8V1 Introduction•4 minutes•Preview module
    • W8V2 Weak Form - Matrix Formulation•9 minutes
    • W8V3 Element Level•5 minutes
    • W8V4 Lagrange Interpolation•12 minutes
    • W8V5 Python:Lagrange Interpolation•6 minutes
    • W8V6 Numerical Integration•7 minutes
    • W8V7 Python Numerical Integration•4 minutes
    1 assignment•Total 45 minutes
    • Lagrange Interpolation - Numerical Integration•45 minutes
    2 ungraded labs•Total 120 minutes
    • W8P1 Lagrange Interpolation•60 minutes
    • W8P2 Numerical Intergration•60 minutes

    We finalize the derivation of the spectral-element solution to the elastic wave equation. We show how to calculate the required derivatives of the Lagrange polynomials making use of Legendre polynomials. We show how to perform the assembly step leading to the final solution system for the elastic wave equation. We demonstrate the numerical solution for homogenous and heterogeneous media.

    What's included

    7 videos1 assignment2 ungraded labs

    7 videos•Total 49 minutes
    • W9V1 Lagrange Derivative - Legendre Polynomials•5 minutes•Preview module
    • W9V2 System of Equations - Element Level•6 minutes
    • W9V3 Global Assembly•8 minutes
    • W9V4 Python: 1D Homogeneous Case•13 minutes
    • W9V5 Python: Heterogeneous Case in 1D•8 minutes
    • W9V6 Convergence Test•4 minutes
    • W9V7 Wrap Up•2 minutes
    1 assignment•Total 45 minutes
    • Spectral-element method - Convergence test•45 minutes
    2 ungraded labs•Total 120 minutes
    • W9P1 Elastic Wave Equation - 1D Homogeneous Case•60 minutes
    • W9P2 Elastic Wave Equation - 1D Heterogeneous Case•60 minutes

    Instructor

    Instructor ratings

    Instructor ratings

    We asked all learners to give feedback on our instructors based on the quality of their teaching style.

    4.8 (135 ratings)
    Heiner Igel
    Heiner Igel
    Ludwig-Maximilians-Universität München (LMU)
    1 Course•26,249 learners

    Offered by

    Ludwig-Maximilians-Universität München (LMU)

    Offered by

    Ludwig-Maximilians-Universität München (LMU)

    As one of Europe's leading research universities, LMU Munich is committed to the highest international standards of excellence in research and teaching. Building on its 500-year-tradition of scholarship, LMU covers a broad spectrum of disciplines, ranging from the humanities and cultural studies through law, economics and social studies to medicine and the sciences.

    Explore more from Research Methods

    • T

      The Hong Kong University of Science and Technology

      Numerical Methods for Engineers

      Course

    • U

      University of California, Davis

      Computer Simulations

      Course

    • J

      Johns Hopkins University

      Applied Calculus with Python

      Course

    • S

      Siemens

      Applied Computational Fluid Dynamics

      Course

    Why people choose Coursera for their career

    Felipe M.
    Learner since 2018
    "To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
    Jennifer J.
    Learner since 2020
    "I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
    Larry W.
    Learner since 2021
    "When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
    Chaitanya A.
    "Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

    Learner reviews

    4.8

    386 reviews

    • 5 stars

      82.38%

    • 4 stars

      13.98%

    • 3 stars

      1.81%

    • 2 stars

      1.55%

    • 1 star

      0.25%

    Showing 3 of 386

    A
    AM
    5

    Reviewed on Jul 8, 2023

    Excellent course and instructor, I recommend it to everyone interested in learning numerical modelling .

    V
    VP
    5

    Reviewed on May 1, 2022

    T​his is an outstanding course that covers many subjects briefly. I have learnt so much with the methodology the lecturer have applied for the course.

    R
    RM
    5

    Reviewed on Jul 11, 2020

    This is an excellent course as I have found. The instructor has taught us many important concepts including the detailed codes. I would love to join further courses from Prof. Igel.

    View more reviews
    Coursera Plus

    Open new doors with Coursera Plus

    Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

    Learn more

    Advance your career with an online degree

    Earn a degree from world-class universities - 100% online

    Explore degrees

    Join over 3,400 global companies that choose Coursera for Business

    Upskill your employees to excel in the digital economy

    Learn more

    Frequently asked questions

    Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:

    • The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.

    • The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

    When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

    You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policyOpens in a new tab.

    Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

    More questions

    Visit the learner help center

    Financial aid available,

    Coursera Footer

    Technical Skills

    • ChatGPT
    • Coding
    • Computer Science
    • Cybersecurity
    • DevOps
    • Ethical Hacking
    • Generative AI
    • Java Programming
    • Python
    • Web Development

    Analytical Skills

    • Artificial Intelligence
    • Big Data
    • Business Analysis
    • Data Analytics
    • Data Science
    • Financial Modeling
    • Machine Learning
    • Microsoft Excel
    • Microsoft Power BI
    • SQL

    Business Skills

    • Accounting
    • Digital Marketing
    • E-commerce
    • Finance
    • Google
    • Graphic Design
    • IBM
    • Marketing
    • Project Management
    • Social Media Marketing

    Career Resources

    • Essential IT Certifications
    • High-Income Skills to Learn
    • How to Get a PMP Certification
    • How to Learn Artificial Intelligence
    • Popular Cybersecurity Certifications
    • Popular Data Analytics Certifications
    • What Does a Data Analyst Do?
    • Career Development Resources
    • Career Aptitude Test
    • Share your Coursera Learning Story

    Coursera

    • About
    • What We Offer
    • Leadership
    • Careers
    • Catalog
    • Coursera Plus
    • Professional Certificates
    • MasterTrack® Certificates
    • Degrees
    • For Enterprise
    • For Government
    • For Campus
    • Become a Partner
    • Social Impact
    • Free Courses
    • ECTS Credit Recommendations

    Community

    • Learners
    • Partners
    • Beta Testers
    • Blog
    • The Coursera Podcast
    • Tech Blog
    • Teaching Center

    More

    • Press
    • Investors
    • Terms
    • Privacy
    • Help
    • Accessibility
    • Contact
    • Articles
    • Directory
    • Affiliates
    • Modern Slavery Statement
    • Do Not Sell/Share
    Learn Anywhere
    Download on the App Store
    Get it on Google Play
    Logo of Certified B Corporation
    © 2025 Coursera Inc. All rights reserved.
    • Coursera Facebook
    • Coursera Linkedin
    • Coursera Twitter
    • Coursera YouTube
    • Coursera Instagram
    • Coursera TikTok
    Coursera

    Sign up

    Learn on your own time from top universities and businesses.

    ​
    ​
    Between 8 and 72 characters
    Your password is hidden
    ​

    or

    Already on Coursera?


    Having trouble logging in? Learner help center

    This site is protected by reCAPTCHA Enterprise and the Google Privacy Policy and Terms of Service apply.