We may earn an affiliate commission when you visit our partners.
Mohamed Essadki

Explore the fascinating world of numerical methods and unlock the power of Python programming language for solving complex mathematical and physical problems. In this comprehensive course, you will delve into the essential theoretical foundations of numerical analysis while gaining hands-on experience with practical implementations using Python.

Read more

Explore the fascinating world of numerical methods and unlock the power of Python programming language for solving complex mathematical and physical problems. In this comprehensive course, you will delve into the essential theoretical foundations of numerical analysis while gaining hands-on experience with practical implementations using Python.

From root-finding, interpolation and numerical integration to solving differential equations and optimization, this course equips you with the necessary mathematical knowledge and programming skills to tackle a wide range of real-world challenges. You'll learn to apply numerical algorithms, understand their strengths and limitations, and analyze their accuracy through rigorous error analysis.

Designed for both aspiring mathematicians and Python enthusiasts, this course strikes a perfect balance between theory and application. Through engaging lectures, interactive coding exercises, and real-world projects, you'll build a strong understanding of numerical methods' underlying principles and learn to implement them effectively with Python libraries like NumPy and SciPy.

Whether you aim to optimize engineering designs, simulate physical phenomena, analyze financial data, or delve into Data Science and Machine Learning, "Numerical Methods with Python" empowers you to confidently approach diverse problems with numerical precision. Join us on this exciting journey, and elevate your problem-solving capabilities to new heights with the synergy of mathematics and Python programming

Enroll now

What's inside

Learning objectives

  • Foundations of numerical methods: understand the fundamental concepts, principles, and techniques used in numerical analysis.
  • Mathematical background: review essential mathematical foundations required for numerical computations, including calculus and linear algebra.
  • Root-finding methods: learn various algorithms for finding roots of equations, such as the bisection method, newton-raphson method, and secant method.
  • Interpolation and extrapolation: lagrange interpolation and newton's divided differences.
  • Ordinary differential equations (odes): solve initial value problems of odes using numerical techniques like euler's method, runge-kutta methods (e.g., rk4).
  • Linear systems: learn to solve systems of linear equations using direct methods like gaussian elimination, lu decomposition and qr decomposition.
  • Linear systems: learn to solve systems of linear equations using iterative methods like jacobi and gauss-seidel.
  • Error analysis: understand the sources of error in numerical computations and how to analyze and minimize them
  • Python programming: gain practical experience with python programming for implementing and solving numerical methods.
  • Python libraries: numpy, scipy, sympy

Syllabus

Introduction to Numerical Methods
By the end of this section, you will learn the theory behind number representation and in practice the binary representation. You will also learn the fix and floating point representation
Read more

In the "Introduction to Number Representation" section, you will delve into three key areas of understanding. Firstly, you'll explore number representation across various base systems, gaining insight into how numbers can be expressed differently depending on the base. Secondly, you'll delve into the intricacies of machine error, uncovering the factors that can impact numerical precision in computational environments. Lastly, you'll demystify float number representation, grasping the mechanisms behind the storage and manipulation of floating-point numbers.

In this video, you will learn how integer numbers could be represented in different Base system and an algorithm to convert from one base system to another one.

Exercise: Integer Number System Base

Coding Integer Number System Base algorithm

In this video, you will learn how real numbers could be represented in different Base system and an algorithm to convert from one base system to another one.

Python Exercise: Positional Real Number Systems

In this video, you discuss the necessity of rounding in computing float numbers. And, we will explore the first method "Fix Point Representation" to represent float number in a fix number of memory bits.

Floating Point Representation
IEEE Standard 754 for Floating Point
Linear Algebra

We will start by defining Vector Space, first giving simple example then the general definition. Vector Space is a very essential concept in linear algebra and we are going to use in the rest of the course sections.

Proving a set to be Vector Space could be boring and we need to check many conditions. but when this set is already a sub-set of a vector space, the job is more simple and we will need to check only two conditions.

Simple Exercise to represent vector using Numpy Array

We could generate (using a linear combination) a Sub Vector-Space from any given set or sequence of vectors.

Linearly independence concept will be very helpful to understand other interesting concepts like: rank of matrix, uniqueness of the solution of a linear system and so on.

Basis and Dimension of Vector Space
Inner Product
Linear Transformations and Matrices
Matrix-Matrix and Matrix-vector multiplication
Python Exercise: Matrix operations
Python Exercise: Rank and Null Space of a Matrix
Matrices and System of Linear Equations: Direct and Iterative Solvers

Some example of linear systems and understand the different cases with some geometrical illustrations

Matricial Formulation of Linear Systems
Determinant and Inverse of a Matrix
EigenValues and EingenVectors
Matrix diagonalization
Exercise Diagonalization
Gaussian Elimination Method
Gaussian Elimination: Augmented Matrix
Python Exercise: Gaussian Elimination
QR decomposition
Python Exercise: Gram Schmidt QR-Decomposition
Root finding

Root finding is the mathematical process of determining the values (roots) that make a given equation equal to zero, a fundamental task in numerical methods and various fields of science and engineering.

Bisection Method
Python Exercise: Bisection Method
Newton Method
Python Exercise: Newton Method
Trapezoidal Rule
Secant Method
Python Exercise: Secant Method
Convergence Rate
Interpolation
Introduction
Polynomial Interpolation Problem
Existence and Uniqueness of Polynomial Interpolation
Vandermond Matrix method
Python Exercise: Vandermond Matrix Method
Lagrange Method
Python Exercise: Lagrange Method
Divided Difference Formula
Python Exercise: Runge Phenomenon
Intro to Piecewise polynomial Interpolation
Cubic Spline Interpolation part 1
Cubic spline interpolation part 2
Python Exercise: Cubic Spline
Curve fitting and Optimization
Curve fitting Introduction
Linear Regression
Python Exercise: Linear Regression
Multi Linear Regression
Python Exercise: Multi-Linear Regression
Numerical Integration
Introduction to Numerical Integration
Newton Cotes Formulation
Python Exercise: Newton Cotes Part 1
Python Exercice: Newton Cotes Scipy Part 2
Simpson's Rule
Error Analysis: Error Upper Bound of Newton Cotes methods
Python Exercise: Error Analysis of Newton Cotes methods
Ordinary Differential Equations: Analytical solutions
Introuction
ODE Definition
Linear Homogeneous ODEs
Linear Non Homegeneous ODEs
Variation of Parameters method
Exercise: Variation of Parameters
Variable Separation Method
Initial Value Problem
Cauchy Lipshitz Global Theorem 1
Cauchy Lipshitz Local Theorem 2
Exercise: Cauchy Lipshitz
Ordinary Differential Equations: Numerical Solutions
Introduction to Numerical ODEs
Forward Euler Method
Backward Euler Method
Python Exercise: Euler Methods
Leapforg Method
Introduction to Runge Kutta 2
Python Exercise: RK2
Derivation of Runge Kutta 2
Appendix: Python
Python Basics

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Balances theory and application, which is ideal for learners who want to understand the underlying principles and implement them effectively using Python libraries
Uses Python libraries like NumPy and SciPy, which are essential tools for numerical computing and scientific computing in both academic and professional settings
Covers root-finding methods, interpolation, numerical integration, and solving differential equations, which are fundamental techniques in scientific computing and data analysis
Includes hands-on coding exercises and real-world projects, which allows learners to apply numerical algorithms and analyze their accuracy through error analysis
Explores the IEEE Standard 754 for Floating Point numbers, which is essential for understanding how computers represent and manipulate real numbers
Requires familiarity with Python programming, which may necessitate additional learning for individuals without prior experience in the language

Save this course

Save Numerical Analysis & Methods with Python: Theory & Practice to your list so you can find it easily later:
Save

Reviews summary

Numerical methods theory and python practice

According to learners, this course offers a solid and balanced approach to numerical analysis, effectively combining theoretical foundations with practical implementation using Python. Students appreciate the clear explanations of complex topics such as root-finding, interpolation, linear systems, and ODEs. The Python exercises and examples, particularly using libraries like NumPy and SciPy, are highlighted as very helpful for applying the concepts learned. While the course is largely positive and recommended for its depth and hands-on components, a few reviewers note that it might be challenging for those completely new to Python, suggesting some prior Python knowledge is beneficial.
Concepts explained clearly.
"Excellent course! The instructor explains complex topics like root-finding and interpolation very clearly."
"The theory is explained rigorously but also practically applied in Python."
"A solid introduction to numerical methods. The coverage of topics like linear systems and ODEs is thorough."
Practical Python examples are useful.
"The Python exercises are practical and reinforce the theory well."
"The Python examples using NumPy and SciPy were very helpful."
"The Python parts are useful if you're comfortable with the language."
Balances theory with Python apps.
"Excellent course! The instructor explains complex topics like root-finding and interpolation very clearly. The Python exercises are practical and reinforce the theory well."
"Great balance between theory and practice. Highly recommended for anyone needing to apply numerical methods."
"Loved this course! The theory is explained rigorously but also practically applied in Python."
Assumes some Python knowledge.
"I found the Python exercises sometimes confusing. They assume some prior Python knowledge."
"Was hoping for more step-by-step coding guidance."
"Might be tough if you're a complete beginner in Python."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Numerical Analysis & Methods with Python: Theory & Practice with these activities:
Review Linear Algebra Fundamentals
Strengthen your understanding of linear algebra concepts, which are essential for understanding many numerical methods covered in the course.
Browse courses on Linear Algebra
Show steps
  • Review vector and matrix operations.
  • Practice solving systems of linear equations.
  • Study eigenvalues and eigenvectors.
Brush Up on Python Programming
Improve your Python skills to effectively implement numerical methods and work with libraries like NumPy and SciPy.
Browse courses on Python Programming
Show steps
  • Review Python syntax and data structures.
  • Practice using NumPy for numerical computations.
  • Explore SciPy for scientific computing tasks.
Read 'Numerical Recipes: The Art of Scientific Computing'
Supplement your learning with a classic text on numerical methods, providing a broader perspective and alternative implementations.
Show steps
  • Read the chapters relevant to the course topics.
  • Compare the algorithms presented in the book with those taught in the course.
  • Implement some of the algorithms in Python.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement Root-Finding Algorithms
Reinforce your understanding of root-finding methods by implementing them in Python and testing them on various functions.
Show steps
  • Implement the Bisection method in Python.
  • Implement the Newton-Raphson method in Python.
  • Implement the Secant method in Python.
  • Compare the performance of each method.
Read 'Python Programming and Numerical Methods: A Guide for Engineers and Scientists'
Enhance your understanding with a book specifically tailored to numerical methods in Python, offering practical examples and exercises.
Show steps
  • Work through the examples in the book.
  • Complete the exercises at the end of each chapter.
  • Use the book as a reference when implementing numerical methods in Python.
Create a Blog Post on Numerical Integration
Solidify your knowledge of numerical integration by explaining different methods and their applications in a blog post.
Show steps
  • Research different numerical integration techniques.
  • Write a clear and concise explanation of each method.
  • Include examples of how to apply these methods in Python.
  • Publish your blog post online.
Build a Numerical ODE Solver
Deepen your understanding of ODE solvers by building your own solver in Python using methods learned in the course.
Show steps
  • Implement the Forward Euler method.
  • Implement the Backward Euler method.
  • Implement the Runge-Kutta 4th order method.
  • Test your solver on various ODEs.

Career center

Learners who complete Numerical Analysis & Methods with Python: Theory & Practice will develop knowledge and skills that may be useful to these careers:
Data Scientist
A data scientist uses numerical methods extensively to extract insights and build predictive models from data, making this course highly relevant for this career. The course's coverage of Python programming, along with libraries like NumPy and SciPy, provides hands-on experience using tools commonly employed in data analysis and machine learning. Data scientists use root finding, interpolation, numerical integration, and optimization techniques when developing algorithms and models. Mastering error analysis, as taught in this course, is crucial for assessing the reliability of results. This course helps build the foundation for a successful career as a Data Scientist.
Quantitative Analyst
Quantitative analysts, often working in the finance industry, rely heavily on numerical methods to develop and implement sophisticated financial models. The course's focus on numerical analysis, including solving differential equations and optimization techniques, directly applies to pricing derivatives, managing risk, and making investment decisions. This course helps the quantitative analyst implement numerical algorithms using Python libraries like NumPy and SciPy, enabling them to tackle real-world challenges in quantitative finance. Understanding error analysis, also covered in the course, is crucial for ensuring the accuracy and reliability of financial models. This course builds a strong foundation for a career as a Quantitative Analyst.
Computational Physicist
Computational physicists use numerical methods and simulations to study physical systems that are too complex to solve analytically. This course's exploration of solving differential equations, numerical integration, and optimization aligns perfectly with the needs of a computational physicist. The hands-on experience with Python programming and libraries like NumPy and SciPy allows them to build and run simulations effectively. Since they work with complex systems, computational physicists will appreciate the thorough grounding in error analysis. This course helps build expertise, preparing one for success as a Computational Physicist.
Financial Engineer
Financial engineers use mathematical and computational tools to solve complex financial problems, making this course valuable. They create and analyze financial products, manage risk, and develop trading strategies using numerical methods. The course's focus on numerical analysis, including optimization and solving differential equations, is directly applicable to financial modeling. Skills in Python programming, along with libraries like NumPy and SciPy, enable them to implement these models effectively. Financial Engineers will be ready to apply numerical algorithms, understand their strengths and limitations, and analyze their accuracy through rigorous error analysis. This course helps build a strong foundation for a career as a Financial Engineer.
Machine Learning Engineer
Machine learning engineers require a strong foundation in numerical methods to develop and optimize machine learning algorithms, making this course highly relevant. The course's coverage of Python programming, along with libraries like NumPy and SciPy, provides practical experience with tools commonly used in machine learning. Specific techniques addressed in the course, such as optimization, root finding, and linear algebra, are fundamental to many machine learning algorithms. A machine learning engineer will find the coverage of error analysis particularly useful for assessing model performance and ensuring accuracy. This course helps build expertise, preparing one for a career as a Machine Learning Engineer.
Simulation Engineer
Simulation engineers create computer models to simulate and analyze the behavior of complex systems, making this course highly applicable. The course's focus on numerical methods, including solving differential equations, numerical integration, and optimization, is essential for building accurate and efficient simulations. Furthermore, simulation engineers will make use of Python programming skills, along with libraries like NumPy and SciPy, to implement and run these simulations. The course's thorough grounding in error analysis is critical for validating simulation results. This course helps build the foundation for a successful career as a Simulation Engineer.
Software Engineer
While software engineers have diverse skill sets, those working on computationally intensive applications or scientific computing can greatly benefit from this course. Its focus on numerical methods, including solving differential equations, numerical integration, and optimization, provides valuable tools for developing efficient algorithms. A software engineer in these fields will also find it useful to have practical skills in Python programming, along with libraries like NumPy and SciPy. Software engineers with numerical analysis skills are prepared to tackle a wider range of development projects. This course helps build the foundation for a Software Engineer.
Aerospace Engineer
Aerospace engineers use numerical methods to model and analyze the behavior of aircraft, spacecraft, and related systems. This course's coverage of solving differential equations, numerical integration, and optimization provides relevant tools for aerodynamic simulations, structural analysis, and control system design. An aerospace engineer will find the hands-on experience with Python programming and libraries like NumPy and SciPy helps them implement and validate their models efficiently. The thorough grounding in error analysis, as taught in the course, is crucial for ensuring the accuracy and reliability of simulations in this safety-critical field. This course may be useful for advancing a career as an Aerospace Engineer.
Robotics Engineer
Robotics engineers use numerical methods for robot control, path planning, and computer vision. This course's focus on linear algebra, solving differential equations, and optimization techniques is directly applicable to these tasks. The hands-on experience with Python programming and libraries like NumPy and SciPy allows them to implement and test their algorithms in a simulated environment. A robotics engineer will benefit from the course's coverage of error analysis to assess the accuracy and robustness of their control systems. This course may be useful for building qualifications as a Robotics Engineer.
Econometrician
Econometricians use statistical and numerical methods to analyze economic data and build models, making this course relevant. The course's coverage of linear algebra, optimization, and numerical integration provides valuable tools for estimating parameters, testing hypotheses, and forecasting economic trends. An econometrician can use the Python programming skills and libraries like NumPy and SciPy to implement and analyze econometric models. The comprehensive treatment of error analysis is essential for evaluating the reliability of their findings. This course may be useful for building qualifications as an Econometrician.
Research Scientist
Research scientists across various disciplines often use numerical methods to analyze data, build models, and test hypotheses. This course's broad coverage of numerical analysis techniques, including root finding, interpolation, solving differential equations, and optimization, can be valuable. A research scientist will find the hands-on experience with Python programming, along with libraries like NumPy and SciPy, provides them with the practical skills to implement and validate their models. The course's thorough grounding in error analysis is critical for ensuring the rigor and reliability of their research findings. This course may be useful for advancing a career as a Research Scientist.
Biomedical Engineer
Biomedical engineers apply engineering principles to solve problems in medicine and biology, and numerical methods play a crucial role in many aspects of their work. Simulation of physiological systems, image processing, and data analysis often require numerical techniques. A biomedical engineer will find the course's focus on solving differential equations, numerical integration, and optimization relevant to modeling biological processes and designing medical devices. The Python programming skills and libraries like NumPy and SciPy enable them to implement these methods effectively. This course may be useful for biomedical engineers who want to enhance their computational skills.
Statistician
Statisticians collect, analyze, and interpret data to draw conclusions and make predictions. While statistical software packages handle many computations, understanding the underlying numerical methods can be beneficial. The course's coverage of linear algebra, optimization, and numerical integration might be useful for developing custom statistical algorithms or understanding the limitations of existing software. Since they work with data, statisticians will appreciate the thorough grounding in error analysis, an important consideration in statistical modeling. This course may be useful for statisticians seeking a deeper understanding of computational aspects of their field.
Data Analyst
Data analysts examine and interpret data to identify trends and patterns, often using statistical software. While this course focuses on numerical methods rather than statistical analysis, the Python programming skills and familiarity with libraries like NumPy and SciPy can still be valuable. A data analyst might use these tools for data manipulation, visualization, or to implement custom analytical functions. The course may be useful for those data analysts seeking to enhance their programming skills and gain a deeper understanding of data processing techniques. This course may be useful for advancing a career as a Data Analyst.
Physics Teacher
Physics teachers at the high school or college level can enhance their understanding of numerical methods to better explain complex concepts and demonstrate real-world applications. While this course is not directly focused on pedagogy, it can provide valuable background knowledge and practical skills that enrich their teaching. A physics teacher will find the course helpful for creating simulations, analyzing experimental data, and engaging students in hands-on activities. This course may be useful for any Physics Teacher.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Numerical Analysis & Methods with Python: Theory & Practice.
Provides a practical introduction to numerical methods using Python. It covers essential topics such as root-finding, interpolation, numerical integration, and the solution of differential equations. The book emphasizes hands-on learning through numerous examples and exercises. It is particularly useful for students who want to learn how to apply numerical methods to solve engineering and scientific problems using Python.
Comprehensive guide to numerical algorithms. It covers a wide range of topics, including root-finding, interpolation, integration, and differential equations. It provides practical implementations of these algorithms in multiple programming languages, including C++ and Fortran, which can be adapted to Python. While not specifically Python-focused, it offers valuable insights into the underlying algorithms.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser