Numerical methods challenge: Summary
During October (2017) I wrote a program per day for some well-known numerical methods in both Python and Julia. It was intended to be an exercise, then don't expect the code to be good enough for real use. Also, I should mention that I had almost no experience with Julia, so it probably is not idiomatic Julia but more Python-like Julia.
Summary
This post is a summary of that challenge. For the source code you can check the repository.
The verdict
Since the challenge is with myself, and the main purpose was to learn some Julia the verdict is: success. Nevertheless, I failed during day 26 with the Boundary Element Method.
The list of methods
Day |
Numerical method |
---|---|
Bisection |
|
Regula falsi |
|
Newton |
|
Newton multivariate |
|
Broyden |
|
Gradient descent |
|
Nelder-Mead |
|
Newton for optimization |
|
Lagrange interpolation |
|
Lagrange interpolation with Lobatto sampling |
|
Lagrange interpolation using Vandermonde matrix |
|
Hermite interpolation |
|
Spline interpolation |
|
Trapezoid quadrature |
|
Simpson quadrature |
|
Clenshaw-Curtis quadrature |
|
Euler integration |
|
Runge-Kutta integration |
|
Verlet integration |
|
Shooting method |
|
Finite differences with Jacobi method |
|
Finite differences for eigenvalues |
|
Ritz method |
|
Finite element method in 1D |
|
Finite element method in 2D |
|
Boundary element method |
|
Monte-Carlo integration |
|
LU factorization |
|
Cholesky factorization |
|
Conjugate gradient |
|
Finite element method with solver |
Conclusions
This was an exercise of code-kata to learn some of the details of Julia for scientific computing. As such, it was really useful for me to get my hands dirty with Julia.
Implementing the Boundary Element Method in one day seems to be rough. I knew this beforehand, but I gave it a try anyways … without succcess.
Julia syntax is somewhat in a sweetspot between Python and MATLAB. This makes it really easy to use, although the documentation of some packages is at an arcane stage right now.
I won't take a challenge like this in a while. It takes a lot of atttention to get it done.
Comments
Comments powered by Disqus