We may earn an affiliate commission when you visit our partners.
Course image
Holczer Balazs

This course is about numerical methods and optimization algorithms in Python programming language.

We are NOT going to discuss ALL the theory related to numerical methods (for example how to solve differential equations etc.) - we are just going to consider the concrete implementations and numerical principles

The first section is about matrix algebra and linear systems such as matrix multiplication, gaussian elimination and applications of these approaches. We will consider the famous Google's PageRank algorithm.

Read more

This course is about numerical methods and optimization algorithms in Python programming language.

We are NOT going to discuss ALL the theory related to numerical methods (for example how to solve differential equations etc.) - we are just going to consider the concrete implementations and numerical principles

The first section is about matrix algebra and linear systems such as matrix multiplication, gaussian elimination and applications of these approaches. We will consider the famous Google's PageRank algorithm.

Then we will talk about numerical integration. How to use techniques like trapezoidal rule, Simpson formula and Monte-Carlo method to calculate the definite integral of a given function.

The next chapter is about solving differential equations with Euler's-method and Runge-Kutta approach. We will consider examples such as the pendulum problem and ballistics.

Finally, we are going to consider the machine learning related optimization techniques. Gradient descent, stochastic gradient descent algorithm, ADAGrad, RMSProp and ADAM optimizer will be discussed - theory and implementations as well.

IF YOU ARE NEW TO PYTHON 

Enroll now

What's inside

Learning objectives

  • Understand linear systems and gaussian elimination
  • Understand eigenvectors and eigenvalues
  • Understand google's pagerank algorithm
  • Understand numerical integration
  • Understand monte-carlo simultions
  • Understand differential equations - euler's method and runge-kutta method
  • Understand machine learning related optimization algorithms (gradient descent, stochastic gradient descent, adam optimizer etc.)

Syllabus

Introduction
### NUMERICAL METHODS ###
Floating point numbers
Precision and accuracy
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers optimization techniques such as gradient descent, stochastic gradient descent, and ADAM, which are fundamental to training machine learning models
Focuses on concrete implementations of numerical principles rather than exhaustive theoretical discussions, making it suitable for hands-on learners
Assumes familiarity with Python, though it includes a crash course appendix, which may not be sufficient for complete beginners
Includes applications of Monte-Carlo simulations in finance and a portfolio optimization challenge, which may appeal to those in the financial sector
Explores Google's PageRank algorithm, offering insights into how search engines rank web pages, which is relevant to information retrieval
Presents mathematical formulations alongside implementations, which helps learners connect theory with practical application and deepen their understanding

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Numerical methods and optimization in python overview

According to learners, this course offers a solid introduction to numerical methods and optimization using Python. Students frequently highlight the practical coding examples and implementations as particularly valuable, finding them helpful for understanding theoretical concepts. The coverage spans topics from linear algebra and integration to differential equations and machine learning optimization algorithms like Gradient Descent and ADAM. While many appreciate the breadth, some reviewers suggest that the course sometimes lacks depth in theoretical foundations or assumes prior mathematical or programming knowledge. Overall, it appears to be a highly regarded course for those seeking a code-centric approach to these topics.
Coverage depth varies between topics.
"Some sections, like Gaussian elimination or optimization, were very detailed, while others felt a bit rushed."
"Could use more in-depth coverage on complex topics or theoretical proofs."
"The implementation part is strong, but the theoretical background sometimes feels minimal."
"Some topics were explored deeply, others were more of a high-level touch."
Effective starting point for the subject.
"This course provided me with a strong foundation in numerical methods and optimization in Python."
"As a first step into this area, it was very helpful and clear."
"I gained a solid understanding of the core principles from completing this course."
"Great for getting an overview and learning the basics hands-on."
Wide range of relevant topics covered.
"I appreciate the breadth of topics covered, from basic linear algebra to advanced optimization algorithms for ML."
"It gives a good overview of many numerical methods useful in different fields."
"Learned about PageRank, Monte-Carlo, and various optimization techniques - a great mix!"
"The syllabus is packed with interesting and useful subjects."
Hands-on coding is a major strength.
"The hands-on coding and projects are the strongest part of the course for me, really solidified my understanding."
"I loved that we dove straight into Python implementations for each method. It made the concepts click."
"Practical examples using NumPy were super helpful. I can immediately apply these to my own work."
"Implementing algorithms myself was the best way to learn. The code sections are well-done."
"This course provided practical tools and strategies I could immediately apply."
May need prior math/programming knowledge.
"While the course offers a Python crash course, I found I needed a stronger math background than expected."
"Some lectures move quickly, assuming familiarity with linear algebra or calculus."
"I would recommend having at least intermediate Python skills before taking this."
"This course is better suited if you have a decent foundation in the underlying mathematics."

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 Methods and Optimization in Python with these activities:
Review Linear Algebra Fundamentals
Strengthen your understanding of linear algebra concepts, which are crucial for grasping matrix operations, Gaussian elimination, and eigenvalue/eigenvector calculations used throughout the course.
Browse courses on Linear Algebra
Show steps
  • Review basic matrix operations (addition, multiplication, transpose).
  • Practice solving systems of linear equations.
  • Study the concepts of vector spaces and linear transformations.
Python for Data Analysis
Improve your Python skills with a book focused on data analysis. This book will help you become more proficient with NumPy and other essential libraries.
Show steps
  • Read the chapters on NumPy and Pandas.
  • Practice using these libraries to solve data analysis problems.
  • Apply your skills to the challenges presented in the course.
Numerical Mathematics and Computing
Supplement your understanding of numerical methods with a comprehensive textbook. This book provides a strong theoretical foundation and practical examples.
Show steps
  • Read the chapters related to the topics covered in the course.
  • Work through the examples and exercises in the book.
  • Compare the book's explanations with the course materials.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Implement Gaussian Elimination
Solidify your understanding of Gaussian elimination by implementing it from scratch in Python. This will help you understand the underlying mechanics and potential pitfalls.
Show steps
  • Write a Python function to perform Gaussian elimination on a matrix.
  • Test your implementation with various matrices, including singular matrices.
  • Compare your results with NumPy's linear algebra functions.
Create a Visual Explanation of Gradient Descent
Develop a visual explanation (e.g., a video or interactive animation) of gradient descent. This will reinforce your understanding of the algorithm and its behavior.
Show steps
  • Choose a tool for creating visual content (e.g., Matplotlib, manim).
  • Create a visualization of gradient descent on a simple function.
  • Explain the key concepts of gradient descent in your visualization.
Explore Optimization Libraries
Familiarize yourself with popular Python optimization libraries like SciPy.optimize. This will enable you to efficiently solve optimization problems and compare different algorithms.
Show steps
  • Choose an optimization problem from the course material.
  • Implement the problem using SciPy.optimize.
  • Experiment with different optimization algorithms and compare their performance.
Build a Monte Carlo Simulation
Apply your knowledge of Monte Carlo methods by building a simulation for a real-world problem, such as option pricing or risk assessment. This will deepen your understanding of numerical integration and its applications.
Show steps
  • Choose a problem that can be solved using Monte Carlo simulation.
  • Implement the simulation in Python, using NumPy for numerical calculations.
  • Analyze the results of your simulation and compare them with theoretical values.

Career center

Learners who complete Numerical Methods and Optimization in Python will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
A machine learning engineer focuses on designing, building, and deploying machine learning systems. This course, Numerical Methods and Optimization in Python, is valuable because it provides practical implementations of optimization algorithms, such as gradient descent, stochastic gradient descent, and ADAM. A machine learning engineer can use these techniques to train and optimize machine learning models. Knowing how to use and implement these algorithms is crucial. The course's coverage of linear algebra is important, as linear algebra is a mathematical foundation of many machine learning algorithms.
Algorithm Developer
An algorithm developer designs and implements algorithms for various applications, ranging from search engines to financial trading systems. The Numerical Methods and Optimization in Python course is directly applicable to this career. The course covers essential algorithms and their Python implementations. The course's sections on linear algebra, Gaussian elimination, PageRank, optimization techniques, and root finding are valuable for an algorithm developer. The course's lessons on Gaussian elimination implementation and Google's PageRank algorithm are particularly relevant.
Data Scientist
A data scientist analyzes large datasets to extract meaningful insights using statistical methods and machine learning techniques. Data scientists can leverage what they learn in Numerical Methods and Optimization in Python. The course's coverage of machine learning optimization algorithms, such as gradient descent, stochastic gradient descent, ADAGrad, RMSProp, and the ADAM optimizer, directly translates to building and tuning predictive models. Furthermore, the sections on linear algebra, numerical integration, and Monte Carlo simulations can be useful for various data analysis and modeling tasks.
Financial Engineer
A financial engineer applies mathematical and computational methods to solve complex financial problems. Becoming a Financial Engineer requires strong quantitative skills. The Numerical Methods and Optimization in Python course may be useful. It covers numerical integration techniques like the trapezoidal rule and Monte Carlo methods, essential for pricing derivatives and simulating financial markets. The course's discussion of optimization algorithms is relevant to portfolio optimization and risk management. The course's lessons on portfolio optimization implementation and challenge problems are highly relevant.
Operations Research Analyst
An operations research analyst uses mathematical and analytical methods to help organizations make better decisions. Numerical Methods and Optimization in Python helps because operations research analysts rely heavily on optimization techniques and numerical methods. The course’s coverage of linear systems, Gaussian elimination, and optimization algorithms like gradient descent and the ADAM optimizer can be directly applied to solving optimization problems in logistics, supply chain management, and resource allocation.
Quantitative Analyst
A quantitative analyst develops and implements mathematical models for pricing and trading securities. The course, Numerical Methods and Optimization in Python, may be useful because it covers numerical integration using methods like the trapezoidal rule, Simpson's formula, and Monte Carlo integration. These techniques can be applied to derivative pricing and risk management. Additionally, the sections on linear algebra and optimization, including gradient descent and related algorithms, are relevant to model calibration and optimization problems encountered by quantitative analysts.
Computational Scientist
A computational scientist uses computational techniques to solve scientific problems, often involving complex simulations and data analysis. This course, Numerical Methods and Optimization in Python, may be helpful because it covers various numerical methods applicable to scientific computing. Topics such as numerical integration, solving differential equations, and optimization algorithms are fundamental tools in computational science. The course's lessons on Euler's method, Runge-Kutta method, and challenges are highly relevant.
Risk Manager
A risk manager identifies and assesses risks that could impact an organization. A risk manager analyzes data and develops strategies to minimize potential losses. Numerical Methods and Optimization in Python helps because risk managers need numerical methods for risk modeling and simulation. The course's coverage of Monte Carlo simulations, numerical integration, and optimization algorithms provides tools that risk managers can deploy to quantify and manage financial and operational risks. The course's Monte Carlo integral implementation is also relevant.
Data Analyst
A data analyst collects, processes, and analyzes data to identify trends and insights. The Numerical Methods and Optimization in Python course helps by providing skills in numerical methods and optimization techniques. The course's coverage of linear algebra, numerical integration, and optimization algorithms may be useful for analyzing data and building models. A data analyst can use what they learn in order to interpret data using a computational approach, particularly when studying relationships between various data features.
Software Engineer
A software engineer designs, develops, and tests software applications. The Numerical Methods and Optimization in Python course may be useful, especially for software engineers working on projects that require numerical computations or optimization. The course's focus on Python implementations of numerical methods and optimization algorithms provides practical skills for developing software that solves mathematical problems. The course's lessons on Python basics, NumPy arrays, and machine learning algorithms are highly relevant.
Statistician
A statistician collects, analyzes, and interprets quantitative data to identify trends and relationships. The Numerical Methods and Optimization in Python course may assist because a statistician uses numerical methods and optimization techniques for statistical modeling and analysis. The course's coverage of numerical integration, Monte Carlo simulations, and optimization algorithms may be useful. The discussion of machine learning related optimization algorithms is also relevant.
Econometrician
An econometrician uses statistical methods to analyze economic data and test economic theories. The Numerical Methods and Optimization in Python course may assist because econometricians often employ numerical methods for estimation and simulation. The course's coverage of linear algebra, numerical integration, and optimization algorithms may be useful, particularly the sections on Gaussian elimination and gradient descent. These methods are relevant to solving systems of equations and optimizing model parameters.
Research Scientist
A research scientist conducts research to advance knowledge in a specific field. A research scientist might find this course helpful. The Numerical Methods and Optimization in Python course may be useful because many research projects require numerical simulations, data analysis, or optimization. The course's coverage of numerical methods, differential equations, and optimization algorithms provides valuable tools for conducting research. Those interested can find some overlap between the course's theory and implementation and the kind of research that they do.
Biostatistician
A biostatistician applies statistical methods to biological and health-related data. The Numerical Methods and Optimization in Python course may assist because biostatisticians use numerical methods for modeling and analyzing complex biological systems. The course's coverage of numerical integration, differential equations, such as Euler's method and the Runge-Kutta approach, and optimization algorithms can be valuable for simulations and data analysis in biostatistics. Those who desire to become a biostatistician and who lack experience with such topics can find that this course helps build a foundation.
Business Analyst
A business analyst identifies business needs and recommends solutions. While not directly related, the Numerical Methods and Optimization in Python course may be helpful. A business analyst can use the principles of optimization and modeling to improve business processes. The course's emphasis on problem-solving and implementation may be useful for a business analyst. For example, linear algebra knowledge may assist one in understanding the features of a model for predicting business performance.

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 Methods and Optimization in Python.
Provides a comprehensive introduction to numerical methods, covering topics such as root finding, interpolation, numerical integration, and the solution of differential equations. It offers a strong theoretical foundation and practical examples, making it a valuable reference for understanding the underlying principles of the algorithms discussed in the course. It is commonly used as a textbook in numerical analysis courses. This book adds depth to the course by providing rigorous mathematical explanations.
Practical guide to data analysis with Python, focusing on the use of libraries like NumPy and Pandas. While not strictly about numerical methods, it provides essential skills for data manipulation and analysis, which are crucial for applying the algorithms learned in the course. It is particularly helpful for students new to Python or data analysis. This book is more valuable as additional reading than as a current reference.

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