Function InvGamma(ByVal X As Double, Optional ByVal t As Variant = 2) 'Calcul de la fonction inverse de Gamma : x=Gamma^-1(y) 'par l'algo de newton 'Traitement des paramètres t = CDbl(t) 'Test validité de la valeur de x If X < 0.88560319435496 Then InvGamma = "#NOMBRE!": Exit Function 'Définition variable Dim x0 As Double 'Methode de Newton 'Valeur initiale Select Case t Case Is > 1.46163233 Y = Log(X) x0 = (0.00002215 * Y ^ 4 + 1.717 * Y ^ 3 + 33.952 * Y ^ 2 + 62.771 * Y + 29.377) ^ 0.25 Case Is > 0 x0 = X / (X ^ 2 + (X - 1) / 3 ^ 0.5) Case Else x0 = t End Select 'Calculs et renvoi InvGamma = Newton("FactGamma(X) - " & Str(X), x0) End Function