Source: https://www.unilim.fr/pages_perso/patrick.poulingeas/Enseignements/2004_2005/L1/correctionTD3Algo1_1.pdf