Source: https://www.ljll.math.upmc.fr/~bokanowski/enseignement/2015/MP3/partiel_corrige