# 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 |
---|---|

01 | Bisection |

02 | Regula falsi |

03 | Newton |

04 | Newton multivariate |

05 | Broyden |

06 | Gradient descent |

07 | Nelder-Mead |

08 | Newton for optimization |

09 | Lagrange interpolation |

10 | Lagrange interpolation with Lobatto sampling |

11 | Lagrange interpolation using Vandermonde matrix |

12 | Hermite interpolation |

13 | Spline interpolation |

14 | Trapezoid quadrature |

15 | Simpson quadrature |

16 | Clenshaw-Curtis quadrature |

17 | Euler integration |

18 | Runge-Kutta integration |

19 | Verlet integration |

20 | Shooting method |

21 | Finite differences with Jacobi method |

22 | Finite differences for eigenvalues |

23 | Ritz method |

24 | Finite element method in 1D |

25 | Finite element method in 2D |

26 | Boundary element method |

27 | Monte-Carlo integration |

28 | LU factorization |

29 | Cholesky factorization |

30 | Conjugate gradient |

31 | 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