Skip to content

only-dev-ops/Numerical-Analysis

Repository files navigation

Numerical Analysis Package

This repository contains the Python implementation of the following method:

  1. Finding the roots of a polynomial:
    • Bisection Method: Used to find the roots of a polynomial. Guaranteed to converge.
    • Fixed Point Iteration: x = g(x)
    • Newton-Raphson: The fastest converging method, with an order of 2. Need extra computation for the derivative and might fail when f'(x) = 0
    • Secant Method: Uses the same methodology of Newton's method, but without the need of calculating the derivative. Needs two point for manual slope calculation.
    • Müeller's Method: Faster than Secant method, slower than Newton's. The benefit of using this method is that it can find Complex Roots without the need of a derivative. But in order to do so, we need to have an idea of the curve on which our root lies and needs three points so it can plot a parabola passing through it.
  2. Accelerating techniques:
    • Aitken's Method: His method speeds up the convergence of any of the above methods by calculating 𝝙 after we have 3 points.
    • Steffensen's Method: A combination of Fixed-Point Iteration and the accelration of Aitken's Method. Compute three points using Fixed-Point and apply Aitken's on those three to get another point. Then again perform Fixed-Point Iteration on it and profit.