Skip to content

jmanthony3/LUSE_ENGR701_704_NumericalMethods.jl

Repository files navigation

LUSE_ENGR701_704_NumericalMethods

Stable Dev Build Status Documentation

Currently unregistered. If one wants to use this package, then execute

using Pkg; Pkg.add(url="https://github.com/jmanthony3/LUSE_ENGR701_704_NumericalMethods.jl")

in the Julia REPL.

This package provides:

  • Native Julia implementation of some numerical methods from the 10ᵗʰ edition of Numerical Analysis by Burden et al.
  • solve() includes method dispatching for the following types:
    • SingleVariableIteration
    • InitialValueProblem
    • MultiVariableIteration
    • SystemofEquation

Each of the method dispatches on solve() include convenience functions for the respective numerical method as specified by the method keyword argument. E.g. solve(mvi::MultiVariableIteration; method=:jacobi) ≡ jacobi(mvi) which applies the Jacobi Iterative Technique onto the system of equations defined in a MultiVariableIteration structure.

Key comments:

  • Greatly inspired by the Python package joby_m_anthony_iii
  • Leverages StaticArrays.jl (where appropriate) and practices of recommended Performance Tips
  • Heavy use of Symbolics.jl functions--build_function, simplify, expand_derivatives, and Differential--for symbolic differentiation and evaluation:
    • jacobian_form()
    • lagrange()
    • n1derivative()
    • maximum_slope()
    • newton_raphson()
  • newton_raphson() will solve quicker if the functional form of the derivative or Jacobian matrix is supplied

Roadmap

  • Single-Variable Iteration (SVI)
    • Bisection Method
    • Fixed-Point Method
    • Secant Method
    • False Position
    • Newton-Raphson
  • Interpolation methods
    • Cubic splines
    • Newton's Divided Difference
    • Lagrange Polynomials
    • Hermite Polynomials
    • Linear Least Squares
    • Bezier Curves
    • Newton's Divided Difference
  • Extrapolation methods
    • Richardson's Extrapolation
  • Solving for eigenvalues
    • Power Method
    • Inverse Power Method
    • QR Algorithm
  • Solving Systems of Equations (SOE)
    • Gaussian Elimination
    • Steepest Descent
    • Conjugate Gradient
  • Multi-Variable Iteration (MVI)
    • Jacobi
    • Gauss-Seidel
    • Successive Relaxation
  • Initial Value Problems (IVP)
    • Forward Euler
    • Backward Euler
    • Improved/Modified Euler
    • Runge-Kutta
      • 2ⁿᵈ-Order
      • 4ᵗʰ-Order
  • Boundary Value Problems (BVP)
    • Linear Shooting Method
    • Finite Difference Method
  • Other Ordinary/Partial Differential Equations (O/PDE)
  • Decision on appropriate naming convention of types/functions/methods
  • Expand base methods for other linear algebraic properties and convenience functions
  • Attributes and plot recipes for plotting approximations and respective errors by iteration

Citing

See CITATION.bib for the relevant reference(s).

References

  1. R. Burden L., D. Faires J., and A. Burden M., Numerical Analysis, 10th ed. 20 Channel Center Street, Boston, MA 02210, USA: Cengage, 2019.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published