Skip to content

This repo contains recipes for solving computational math problems using Python

License

Notifications You must be signed in to change notification settings

jeantardelli/math-with-python

Repository files navigation

Issues Forks Stars MIT License

Applying Math with Python

This repo contains code that solves mathematical problems in Python and follows the introductionary guide on the Applying Math with Python book.

Directories

This directory contains core mathematical concepts and structures and their Python representations. Some examples are basic numerical types, basic mathematical functions (i.e. trigonometric, exponentia, logarithms, etc), and matrices.

This directory contains modules that plot functions and data in a variety of styles, creating figures that are fully labeled and annotated. Includes also three-dimensional plots and its customization.

This directory contains various topics related to calculus such as polynomials, differentials and integrations, solving equations or system of equations and fast Fourier Transform for signals processing.

This directoy contains code related to randomness and probability. Here you will find code that explores the fundamental of probability (such as selecting elements from a set of data) or (pseudo) random numbers generation. Some modules illustrates Bayesian techniques and Markov chain Monte Carlo methods to estimate parameters on a simple model.

This directory contains code related to trees and networds. Networks are objects that contain nodes and edges between pairs of nodes. They can be used to represent a wide variety of real-world situations, such as distribution and scheduling. The modules contained here explore how to create, characterize and search minimal paths in networks.

This directory contains code related to data analysis and statistics. Statistics is the systematic study of data using mathematical—specifically, probability—theory There are two aspects to statistics. The first is to find numerical values that describe a set of data, including characteristics such as the center (mean or median) and spread (standard deviation or variance) of the data. The second aspect of statistics is inference, describing a much larger set of data (a population) using a relatively small sample dataset. The modules contained here explore how to analyze data and derive statistics using scipy, pandas, matplotlib and bokeh.

This directory contains recipes that allow the sistematic understanding of the relationship between two sets of data such as linear regression, multilinear regression and classification using logarithmic regression. Besides general approach to sets of data, some recipes illustrates how to analyze and model time series data (a specialized class of regression) such as ARMA, ARIMA and SARIMA.

This directory describes solutions to several problems concerning two-dimensional geometry. Geometry is a branch of mathematics concerned with the characteristics of points, lines, and other figures (shapes), the interaction between such figures, and the transformation of such figures.

This directory contains various methods for finding the best outcome in a given situation, a process called optimization, such as Minimizing a simple linear function or a non-linear function. Using gradient descent methods in optimization or using least squares to fit a curve to data. And, finally, analyzing simple two-player games and computing Nash equilibria.

This directory contains several topics that don't fit within the previous categories but that help computation and optimization in the execution of code. Some of these topics include how to keep track of units with Pint, how to execute Jupyter Notebooks as scripts, how to work with data streams, how to accelerate code with Cython or distribution computation with Dask.

License

The MIT License