https://medium.com/@neriahkingguerra/download-pdf-programming-for-computations-python-a-gentle-introduction-to-numerical-simulations-d54318c9ed4d