Source: http://irma.math.unistra.fr/~fbertran/enseignement/Master1_2016_2/Master2Cours2.pdf