Computers Waves Simulations: A Practical Introduction to Numerical Methods using Python
This course provides a practical introduction to numerical methods for solving partial differential equations, with an emphasis on transforming mathematical equations into python codes and visualizing the results. It covers topics such as Taylor series, Fourier series, differentiation, function interpolation, numerical integration, wave physics, discretization, meshes, parallel programming, and computing models. Strategies for ensuring correct solutions are also discussed. ▼
ADVERTISEMENT
Course Feature
Cost:
Free
Provider:
Coursera
Certificate:
Paid Certification
Language:
English
Start Date:
17th Jul, 2023
Course Overview
❗The content presented here is sourced directly from Coursera platform. For comprehensive course details, including enrollment information, simply click on the 'Go to class' link on our website.
Updated in [March 06th, 2023]
Course Overview:
This course provides a practical introduction to numerical methods for solving partial differential equations using Python. It covers the mathematical derivation of computational algorithms, strategies for ensuring solutions are correct, and basic introductions to wave physics, discretization, meshes, parallel programming, and computing models. It also covers the finite-difference method, the pseudospectral method, the linear and spectral element method, Taylor series, Fourier series, differentiation, function interpolation, and numerical integration.
Possible Development Directions:
This course provides a basic introduction to numerical methods for solving partial differential equations. It is suitable for anyone who is interested in developing or using numerical methods applied to partial differential equations. It can be used as a starting point for further development in natural sciences, engineering, economics, and other fields.
Related Learning Suggestions:
To get the most out of this course, it is recommended to have a basic understanding of Python and partial differential equations. It is also recommended to have a basic understanding of wave physics, discretization, meshes, parallel programming, and computing models. Additionally, it is beneficial to have a basic understanding of Taylor series, Fourier series, differentiation, function interpolation, and numerical integration.
[Applications]
The application of this course is to provide a practical introduction to numerical methods using Python for solving partial differential equations. After completing this course, participants will have a better understanding of the mathematical ingredients of various numerical methods, such as Taylor series, Fourier series, differentiation, function interpolation, and numerical integration. They will also be able to develop and use numerical methods to solve partial differential equations, as well as understand the basics of wave physics, discretization, meshes, parallel programming, and computing models. Furthermore, participants will be able to ensure their solutions are correct by using strategies such as benchmarking with analytical solutions or convergence tests.
[Career Paths]
1. Computational Scientist: Computational scientists use numerical methods to solve complex problems in a variety of fields, such as physics, engineering, and economics. They develop and implement algorithms to solve problems, analyze data, and create simulations. They also use high-performance computing to optimize the performance of their algorithms. This field is rapidly growing, as more and more organizations are turning to computational scientists to solve their most complex problems.
2. Data Scientist: Data scientists use a variety of techniques to analyze large datasets and uncover patterns and insights. They use machine learning algorithms to build predictive models, and use data visualization to communicate their findings. Data scientists are in high demand, as organizations are increasingly relying on data-driven decision making.
3. Software Engineer: Software engineers use programming languages to develop software applications. They design, develop, and test software applications, and use numerical methods to optimize the performance of their applications. Software engineering is a rapidly growing field, as more and more organizations are turning to software engineers to develop their applications.
4. Machine Learning Engineer: Machine learning engineers use machine learning algorithms to build predictive models. They use numerical methods to optimize the performance of their models, and use data visualization to communicate their findings. Machine learning engineers are in high demand, as organizations are increasingly relying on machine learning to make decisions.
[Education Paths]
1. Bachelor of Science in Computer Science: This degree path provides students with a comprehensive understanding of computer science fundamentals, including programming, software engineering, computer architecture, and algorithms. Students will also learn about the latest developments in computer science, such as artificial intelligence, machine learning, and data science. This degree path is ideal for those interested in developing and applying numerical methods to partial differential equations.
2. Master of Science in Applied Mathematics: This degree path provides students with a deep understanding of mathematical principles and their application to real-world problems. Students will learn about numerical methods, optimization, and probability and statistics, as well as their application to partial differential equations. This degree path is ideal for those interested in developing and applying numerical methods to partial differential equations.
3. Doctor of Philosophy in Computational Science: This degree path provides students with a comprehensive understanding of computational science, including numerical methods, computer simulation, and data analysis. Students will learn about the latest developments in computational science, such as artificial intelligence, machine learning, and data science. This degree path is ideal for those interested in developing and applying numerical methods to partial differential equations.
4. Master of Science in Data Science: This degree path provides students with a comprehensive understanding of data science fundamentals, including programming, software engineering, machine learning, and data analysis. Students will also learn about the latest developments in data science, such as artificial intelligence, natural language processing, and deep learning. This degree path is ideal for those interested in developing and applying numerical methods to partial differential equations.
Course Syllabus
Week 01 - Discrete World, Wave Physics, Computers
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.Week 02 The Finite-Difference Method - Taylor Operators
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.Week 03 The Finite-Difference Method - 1D Wave Equation - von Neumann Analysis
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.Week 04 The Finite-Difference Method in 2D - Numerical Anisotropy, Heterogeneous Media
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.Week 05 The Pseudospectral Method, Function Interpolation
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.Week 06 The Linear Finite-Element Method - Static Elasticity
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.Week 07 The Linear Finite-Element Method - Dynamic Elasticity
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.Week 08 The Spectral-Element Method - Lagrange Interpolation, Numerical Integration
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.Week 09 The Spectral Element Method - 1D Elastic Wave Equation, Convergence Test
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.Pros & Cons
Clear explanation of concepts
Good foundation for more advanced study
Excellent supplementary materials
Detailed codes and explanations
Well thought quizzes system
Complications quickly arise
Not mathematically derived
No followup course
No advanced material covered
Course Provider
Provider Coursera's Stats at AZClass
Discussion and Reviews
0.0 (Based on 0 reviews)
Explore Similar Online Courses
comprehensive anger management
Java Basic Structures: Arrays Strings and Files
Python for Informatics: Exploring Information
Social Network Analysis
Introduction to Systematic Review and Meta-Analysis
The Analytics Edge
DCO042 - Python For Informatics
Causal Diagrams: Draw Your Assumptions Before Your Conclusions
Whole genome sequencing of bacterial genomes - tools and applications
Matrices for physics
AP Physics C - Electricity & Magnetism: Exam Prep
Free Physics Tutorial - Basics of Physics - Motion
Related Categories
Popular Providers
Quiz
Submitted Sucessfully
1. What is the main focus of this course?
2. What type of numerical methods are discussed in this course?
3. What type of programming language is used in this course?
4. Which of the following is NOT a topic covered in the course?
5. What is the target audience of this course?
Correct Answer: Anyone who aims at developing or using numerical methods applied to partial differential equations.
Start your review of Computers Waves Simulations: A Practical Introduction to Numerical Methods using Python