Source: https://ece.uwaterloo.ca/~dwharder/nm/Lecture_materials/pdfs/7.1.1.1.3 4th-order Runge-Kutta method.pdf