https://9pdf.org/document/yd7xokl6-solution-methods-numerical-algorithms.html