Skip to content

Latest commit

 

History

History
112 lines (85 loc) · 3.33 KB

File metadata and controls

112 lines (85 loc) · 3.33 KB

Numerical Methods & Optimization Library

Python implementation of numerical methods and optimization algorithms.

Languages

Results

Optimization Methods


Isosurface visualization in multidimensional space for generalized blind search algorithm

Convergence to global optimum from local minimum on anisotropic function

Partial Differential Equations


Wave equation solution animation using finite difference method

1D parabolic equation solution (mixed boundary problem)

Comparison of differential equation solving methods

Interpolation & Approximation


Data interpolation using cubic splines

Data approximation with discrete least squares method

Nonlinear Equations Systems


Nonlinear system solution using Newton's method

Project Structure

Modeling

  • Diffusion and transport equation solvers (Roberts, Gaussian model, Euler, UpWind)
  • Explicit and implicit schemes for PDEs
  • Crank-Nicolson method for semi-empirical equations

Numerical Methods

  • Approximation: LSM (discrete and integral)
  • ODEs/PDEs: Cauchy problems, boundary problems (Thomas algorithm), hyperbolic and parabolic equations, Dirichlet problem for Laplace equation
  • Differentiation: Runge 2nd order method
  • Nonlinear equations: Newton, simple iteration, dichotomy
  • Nonlinear systems: Newton, simple iteration
  • Interpolation: Lagrange (equidistant/non-equidistant nodes), Newton, cubic splines
  • Integration: rectangles, trapezoids, Simpson

Optimization

  • Extremum search: bisection, Fibonacci, golden section, quadratic/cubic interpolation, scanning
  • Multidimensional optimization:
    • Gradient method
    • Conjugate gradients
    • Gauss-Seidel
    • Rosenbrock method
    • Pairwise probe (classical, stochastic)
    • Custom pairwise probe with direction batching
    • Random directions
    • Blind search
    • Random penalty search

Features

  • Generalized algorithms for N-dimensional cases
  • My modification of pairwise probe: batching N samples with best direction selection
  • Algorithms with usage examples + visualization
  • 40+ implemented methods
  • Pure Python + NumPy/SciPy + Matplotlib

Usage

pip install -r requirements.txt