# cdfgam

fonction de répartition de la distribution gamma

## Séquence d'appel

    [P,Q]=cdfgam("PQ",X,Shape,Scale)
                [X]=cdfgam("X",Shape,Scale,P,Q)
                [Shape]=cdfgam("Shape",Scale,P,Q,X)
                [Scale]=cdfgam("Scale",P,Q,X,Shape)

## Paramètres

P,Q,X,Shape,Scale

  5 vecteurs réels de même taille.

P,Q (Q=1-P)

  L'intégrale de 0 à X de la distribution gamma En entrée : [0,1].

X

  Borne supérieure d'intégration En entrée : [0, +infini). En recherche : [0,1E300]

Shape

  Le paramètre de forme de la distribution En entrée : (0, +infini). En recherche : [1E-300,1E300]

Scale

  le paramètre d'échelle de la distribution En entrée : (0, +infini). En recherche : (1E-300,1E300]

## Description

Étant donnés les autres, calcule un paramètre de la distribution gamma.

La fonction de répartition (P) est calculée directement par le code associé à

DiDinato, A. R. and Morris, A. H. Computation of the incomplete gamma function ratios and their inverse. ACM Trans. Math. Softw. 12 (1986), 377-393.

Le calcul des autres paramètres implique une recherche d'une valeur conduisant à la valeur désirée pour P. La recherche dépend de la monotonicité de P par rapport aux autres paramètres.

La distribution gamma est proportionnelle à `T**(SHAPE - 1) * EXP(- SCALE * T)`

Tiré de la bibliothèque DCDFLIB: Library of Fortran Routines for Cumulative Distribution Functions, Inverses, and Other Parameters (February, 1994) Barry W. Brown, James Lovato and Kathy Russell. The University of Texas.

## Exemples

Dans l'exemple suivant, on calcule la probabilité de l'événement `x=0.1` pour la fonction de distribution Gamma avec `Shape=1.0` et `Rate=1.0`.

        Shape = 0.1
        Rate = 1.0
        x = 0.1
        // Attendu : P = 0.8275518
        [P,Q]=cdfgam("PQ",x,Shape,Rate)

Dans l'exemple suivant, on calcule la probabilité de l'événement `x=0.1` et vérifié que les algorithmes de recherche permettent d'inverser la fonction.

        Shape = 0.1
        Rate = 2.0
        x = 0.3
        [P,Q]    = cdfgam("PQ",x,Shape,Rate)
        [X1]     = cdfgam("X",Shape,Rate,P,Q)
        [Shape1] = cdfgam("Shape",Rate,P,Q,x)
        [Rate1]  = cdfgam("Rate",P,Q,x,Shape)

Dans l'exemple suivant, on dessine la fonction de distribution Gamma pour différentes valeurs de Shape et Rate.

        N = 1000;
        x = linspace(0,20,N)';
        Shape = [1 2 3 5 9];
        Rate = 1 ./ [2 2 2 1 0.5];
        C = ["red" "green" "blue" "cyan" "orange"];
        lstr = [];
        drawlater();
        h = gcf();
        for i = 1 : 5
          P = cdfgam("PQ",x,Shape(i)*ones(N,1),Rate(i)*ones(N,1));
          lstr(i) = msprintf("Shape=%s, Rate=%s",string(Shape(i)),string(Rate(i)));
          plot(x,P);
          h.children.children(1).children.foreground = color(C(i));
        end
        legend(lstr);
        xtitle("CDF de la fonction de distribution Gamma","X","P");
        drawnow();

## Voir aussi

- cdfbet
- cdfbin
- cdfchi
- cdfchn
- cdff
- cdffnc
- cdfnbn
- cdfnor
- cdfpoi
- cdft