Source: http://math.univ-lyon1.fr/~roblot/resources/masterpro_partiel_2005_correction.pdf