Source: http://www.math.univ-metz.fr/~prudhon/fichiers/L3ME/Math_L3ME.pdf