Source: https://www.emse.fr/~bruchon/cours/Cours_meca_analytique_2017.pdf