Source: https://www.lmpt.univ-tours.fr/~gallardo/CorrectionExosOper.pdf