Sei sulla pagina 1di 11

FUNZIONE GAMMA

 La funzione Gamma (completa), Γ(α), nota anche come integrale di Eulero di


seconda specie, è definita mediante l’integrale definito improprio:


Γ  α  u
α 1
e u du
0

ed assume valori finiti per qualunque valore reale di α ad eccezione degli


interi negativi e dello zero, α  0,1,2,... .

 La funzione Gamma (completa), per α > 0, presenta un unico minimo


relativo, mentre, per α < 0, presenta una infinità di massimi e minimi relativi,
come evidente dal suo grafico sotto riportato.

Funzione Gamma

5
Gamma

0
-4 -3 -2 -1 0 1 2 3 Alfa 4
-1

-2

-3

-4

-5

Valori particolari della funzione Gamma


 In corrispondenza dei valori di α interi positivi, α ≡ n = 1, 2, 3, …, la funzione
Gamma (completa) coincide con il fattoriale di n −1:

Γ  n   1  2  ...   n  2   (n  1)   n  1 !

per cui: Γ  1  0!  1 , Γ  2   1!  1 , Γ  3   2!  2 , Γ  4   3!  6 , ….

 Altri valori particolari della funzione Gamma (completa), sono, per α=1/2:
Γ  1 2  π

e, per α=n+1/2, n = 1, 2, 3, …:
 1  1  3  5 7  ...  2n  1
Γn    π n  1, 2, 3, ...
 2 2n

 Valgono, inoltre, le seguenti relazioni fondamentali:

 formula di ricorrenza: Γ  α  1  α Γ  α 

 formula di riflessione: Γ  α  Γ  1  α   α Γ  α  Γ   α   π sin  απ 

anche: Γ   α    Γ  1  α  α
 formula di duplicazione: Γ  2α    2π  2 2α  1 2 Γ  α  Γ  α  1 2 
1 2

n1
Γ  nα    2π  2 nα 1 2  Γ  α  k n 
  n 1 
 formula di moltiplicazione:
2
n  2, 3, ...
k 0

 1  1  5  9  ...   4n  3   1 
 formule di riduzione: Γn    Γ  n  1, 2, 3, ...
 4 4n 4

 1  1  4  7  ...  3n  2   1 
Γn    Γ  n  1, 2, 3, ...
 3 3n 3

 2  2  5  8  ...  3n  1  2 
Γn    Γ  n  1, 2, 3, ...
 3 3n 3

 3  3  7  11  ...  4n  1  3 
Γn    Γ  n  1, 2, 3, ...
 4 4n 4

Calcolo della funzione Gamma

 Per il calcolo della funzione Gamma (completa), Γ(α), in presenza di


argomenti α qualsiasi, esistono diverse tecniche, caratterizzate da diversi
gradi di complessità e di accuratezza.
 La più semplice tecnica per la valutazione numerica di Γ(α) prevede l’uso
dell’approssimazione polinomiale di C. Hastings, valida per 1 ≤ α ≤ 2:
Γ  α   1  c1a  c2 a 2  c3 a 3  c4 a 4  c5 a 5  c6 a 6  c7 a7  c8 a 8  ε  α 

dove a  α  1 e:
c1  0.577191652 c 2  0.988205891 c 3  0.897056937
c 4  0.918206857 c5  0.756704078 c6  0.482199394
c7  0.193527818 c 8  0.035868343

e per la quale si ha un errore relativo:


ε α  Γ  α   5  10 7 1α 2

Per superare la limitazione 1≤α≤2, si potrà utilizzare la formula di


ricorrenza che permetterà la riduzione dei casi α > 2 ed α < 1 al caso 1 ≤ α ≤
2.

 Una seconda, più accurata, tecnica per la valutazione numerica di Γ(α)


prevede l’impiego dello sviluppo di Lanczos, valido per α > 1:

Γ α  2π
 α  b0  1 2 
α 1 2

d 
c0 c c 
 1  ...  n1   ε  α 
e α  b0  1 2  0
α α1 α  n  1

che, per n=6, b0=5 e:
d 0  1.000000000190015
c0  76.18009172947146 c1  86.50532032941677
c 2  24.01409824083091 c 3  1.231739572450155
c 4  0.001208650973866179
c 5  0.000005395239384953

è caratterizzato dall’errore assoluto:


ε  α   2  10 10 α1

Anche qui, per superare la limitazione α > 1, si potrà utilizzare la formula di


ricorrenza che permetterà la riduzione del caso α < 1 al caso α > 1.
 Una tecnica più efficace per la valutazione numerica della funzione Gamma
(completa) prevede l’impiego dell’espansione in serie di 1/Γ(α) dovuta ad
H.T. Davis, valida per α > 0:
 n
1
  c k α k   ck α k  ε  α 
Γ  α  k 1 k 1

che, per n=26, con:


c1  1.0000000000000000 c 2  0.5772156649015329
c 3  0.6558780715202538
c 4  0.0420026350340952 c 5  0.1665386113822915
c6  0.0421977345555443
c7  0.0096219715278770 c8  0.0072189432466630
c 9  0.00116516 75918591
c 10  0.0002152416741149 c11  0.0001280502823882
c12  0.0000201348547807
c 13  0.0000012504934821 c 14  0.00000113 30272320
c 15  0.0000002056338417
c16  0.0000000061160950 c17  0.0000000050020075
c 18  0.0000000011812746
c19  0.0000000001043427 c 20  0.0000000000077823
c 21  0.0000000000036968
c 22  0.0000000000005100 c 23  0.0000000000000206
c 24  0.0000000000000054
c 25  0.0000000000000014 c 26  0.0000000000000001

presenta, nel campo 0 < α ≤ 1, un errore relativo:


ε α  Γ  α   1  10 16 0α1

pari alla massima accuratezza ottenibile con calcoli sviluppati in doppia


precisione.

Per superare la limitazione 0<α≤1, si potrà utilizzare la formula di


ricorrenza che permetterà la riduzione dei casi α > 1 ed α < 0 al caso 0 < α ≤
1:
 Se α > 1:
Γ  α    α  1   α  2   ...  α  n  1  Γ  α  n con 0  αn1

esempio: Γ  4.76    3.76    2.76    1.76    0.76   Γ  0.76 

 Se α < 0 ed α ≠ −1, −2, …:


1 1 1
Γ  α    ...  Γ  α  n con 0αn1
α α1 αn1
1 1 1
esempio: Γ   2.64      Γ  0.36 
  2.64    1.64    0.64 

 Un algoritmo che fornisce un’accuratezza del tutto paragonabile a quella


ottenibile mediante l’impiego dell’espansione in serie di H.T. Davis, ma che
richiede tempi di elaborazione minori è ottenibile utilizzando le
approssimazioni razionali suggerite da W.J. Cody:
- la prima approssimazione razionale è valida per 1 < α < 2 ed è fornita da:
8

 c  α  1
k
k
Γ  α = 1 + k=1
7 + ε1  α  ε1  α  < 5  10 -15 1< α < 2
 α  1   d k  α  1
8 k

k=0

dove:
c1  66456.1438202405 d0 = 115132.259675553
c2 = 36144.4134186912 d1 = 134659.959864969
c3 = 31451.2729688484 d 2 = 4755.84627752788
c4 = 866.966202790413 d 3 = 22538.1184209802
c5  629.331155312818 d 4 = 3107.77167157231
c6 = 379.804256470946 d5 = 1015.15636749022
c7 = 24.7656508055759 d6 = 315.350626979604
c8 = 1.71618513886549 d7 = 30.8402300119739

- la seconda approssimazione è valida per α ≥ 12 ed è fornita da:

Γ  α  = 2πα α 1/ 2 e
R α  α
+ ε  α ε  α Γ  α  < 5  10 -14 α  12

6
dove R  α  =  bk α
2k  1
con:
k=0

b0 = 0.0833333333333333 b1 = 0.00277777777777768
b2 = 0.00079365079350035 b3 = 0.000595237991304301
b4 = 0.00084171387781295 b5 = 0.001910444077728
b6 = 0.0057083835261

Quest’ultima approssimazione permette di evitare il ricorso alla formula di


ricorrenza per valori elevati di α che risulta computazionalmente oneroso.

 L’algoritmo per il calcolo della funzione Gamma (completa) è riportato nella


routine GamCom. Laddove si preveda la necessità di calcolare Γ(α) per
α>171.624, onde evitare un errore di overflow, si potrà usare la routine
alternativa LoGaCo, che fornisce il logaritmo naturale del valore assoluto
della funzione Gamma (completa), ln|Γ(α) |.

Funzione Digamma
 La funzione Digamma(*), ψ(α), nota anche come funzione Psi, è definita come
la derivata del logaritmo naturale della funzione Gamma (completa):

d  ln Γ  α   Γ  α 
ψ α  
dα Γ  α

ed assume valori finiti per qualunque valore reale di α ad eccezione degli


interi negativi e dello zero, α  0,1,2,... .

 La funzione Digamma è sempre crescente e si annulla una sola volta, per α>0,
ed infinite volte, per α < 0, come evidente dal suo grafico sotto riportato.

Funzione Digamma

3
Digamma

0
-4 -3 -2 -1 0 1 2 3 Alfa 4

-1

-2
-------------------------
Le derivate della funzione Digamma, ψ  d ψ  α  dα  d  lnΓ  α   dα , sono note
(*) (n) n n n1 n1

-3
come funzioni Poligamma; per n=2,3,4 la funzione Poligamma è spesso indicata con i nomi
di funzione Trigamma, Tetragamma e Pentagamma.
Valori particolari della funzione Digamma

 Il valore assunto dalla funzione funzione Digamma in corrispondenza di α=1,


cambiato di segno, è noto come costante di Eulero, γ:
ψ  1  γ  0.577215664901533

mentre, i valori corrispondenti ai restanti valori di α interi positivi, α ≡ n = 2,


3, 4, …, sono forniti dalla relazione:

n 1
1
ψ  n   γ   n  2,3,4,...
k 1 k

per cui: ψ  2   γ  1 , ψ  3   γ  3 2 , ψ  4   γ  11 6 , ψ  5   γ  25 12 , ….

 Altri valori particolari della funzione Digamma sono quelli per α=1/2:

ψ  1 2   γ  2ln2

e per α=n+1/2, n = 1, 2, 3, …:

 1  1 1 1 
ψ  n    γ  2ln2  2  1    ...   n  1, 2, 3, ...
 2  3 7 2n  1 

 Valgono, inoltre, le seguenti relazioni fondamentali:


1
 formula di ricorrenza: ψ  α  1  ψ  α  
α

1
 formula di riflessione: ψ 1  α  ψ α  ψ  α  ψ α   π tan  απ 
α

1  1 
 formula di duplicazione: ψ  2α   ψ  α   ψ  α    ln2
2  2 

Calcolo della funzione Digamma


 Anche per il calcolo della funzione Digamma, ψ(α), in presenza di argomenti
α qualsiasi, esistono diverse tecniche, caratterizzate da diversi gradi di
complessità e di accuratezza.

 Una tecnica per la valutazione numerica di ψ(α) che coniuga la semplicità


ad una buona accuratezza prevede l’impiego della già citata forma troncata
dell’espansione in serie di 1/Γ(α) dovuta ad H.T. Davis, valida per α > 0:
 n
1
  ck α k   ck α k  ε  α 
Γ  α  k 1 k 1

Risultando, infatti:
d  ln Γ  α   d  1 Γ  α   dα
ψ α  
dα 1 Γ  α
si avrà:
n

 kc α k
k 1

ψ  α    k 1n  εψ  α 
c α
k 1
k
k

Per n=26, nel campo 0 < α ≤ 1, l’errore relativo ε  α  ψ  α  non è di molto ψ

superiore al minimo ottenibile con calcoli sviluppati in doppia precisione.


Per superare la limitazione 0<α≤1, si potrà utilizzare la formula di
ricorrenza che permetterà la riduzione dei casi α > 1 ed α < 0 al caso 0 < α ≤
1:

 Se α > 1:
1 1 1
ψ α    ...  ψ  α  n con 0  α  n 1
α1 α2 αn
1 1 1 1
esempio: ψ  4.76       ψ  0.76 
 3.76   2.76   1.76   0.76 

 Se α < 0 ed α ≠ −1, −2, …:


1 1 1
ψ α     ...  ψ  α  n con 0 αn1
α α1 αn1
1 1 1
esempio: ψ   2.64       ψ  0.36 
  2.64    1.64    0.64 

 L’algoritmo per il calcolo della funzione Digamma qui descritto è stato


utilizzato per la scrittura della routine DiGam.
FUNZIONE BETA

 La funzione Beta (completa), B(a,b), nota anche come integrale di Eulero di


prima specie, è definita mediante l’integrale definito:
1
B  a, b   u
a 1
 1  u  b1 du
0

con a > 0, b > 0 ed è legata alla funzione Gamma (completa) risultando(*):


Γ  a  Γ  b
B  a, b  
Γ  a  b

 I valori assunti dalla funzione Beta (completa) sono visualizzati nel grafico
sotto riportato.

-------------------------
(*) 4
Solo alcuni matematici propongono l’estensione della funzione Beta completa a valori negativi dei
parametri tramite la relazione: B(-a,-b)=Γ(-a)Γ(-b)/Γ(-a-b).
Valori
3
particolari della funzione Beta
P a ra m e tro b

 In corrispondenza
2 dei valori di a e b interi positivi, a ≡ m = 1, 2, 3, …;
b ≡ n = 1, 2, 3, …, la funzione Beta (completa) è esprimibile come:

1
B  m, n  
 m  1 !  n  1 !
 m  n  1 !

ed è strettamente0 .legata
5 1 ai coefficienti
1 .5 2 binomiali,
2 .5 3 risultando,
3 .5 4 4per
.5 m 5 n  0 :
P a ra m e tro a
m 1 1 1 1 1 1
       
 n  m  n B  m  n, n  1 n B  m  n  1, n  m  1 B m  n  1, n  1
 Altri valori particolari della funzione Beta (completa) sono:
B 1 2 , 1 2   π
B  1 3 , 2 3   B  2 3 , 1 3   2π 3

B 1 4 , 3 4   B 3 4 , 1 4   2π
B  1 6 , 5 6   B  5 6 , 1 6   2π
B  a,1  B  1, a   1 a
B a, n  B n, a    n  1 !  a  a  1 ... a  n  1  n  1,2,...

 Valgono, inoltre, le seguenti relazioni fondamentali:

 formula di simmetria: B  a , b   B  b, a 

a
 formule di ricorrenza: B a  1, b   B a, b 
ab
b
B a, b  1  B a, b 
ab
B a, b   B a  1, b   B a, b  1

 formula di riflessione: B  a, 1  a   B  1  a, a   π sin  a π 

 derivate: B  a, b  a  B  b, a   ψ  a   ψ  a  b  
B  a, b  b  B  b, a   ψ  b   ψ  a  b  

Calcolo della funzione Beta


 La funzione Beta (completa) è immediatamente valutabile utilizzando la
relazione fondamentale:
Γ  a  Γ  b
B  a, b  
Γ  a  b
e gli algoritmi per il calcolo della funzione Gamma (completa).

 Va tuttavia rilevato che, anche ricorrendo ad elaborazioni in doppia


precisione, già per valori di a+b superiori a 171, il calcolo della quantità
Γ(a+b) dà luogo ad overflow, senza che B(a,b) sia, necessariamente, un
numero eccedente le capacità di elaborazione. Ad esempio, volendo
valutare B(198,3) si dovrebbe ottenere:
Γ  198  Γ  3  197 !  2 ! 2
B  198, 3      2.5379422364347  10 7
Γ  201 200! 198  199  200
ma il calcolo mediante l’uso della routine GamCom si arresterà al
momento della valutazione di Γ(201) che, valendo 7.8865786736479·10 374,
eccede 1.79769313486231·10 308 e dà luogo quindi ad un errore di overflow.
 Il problema può essere superato ricorrendo al calcolo logaritmico
valutando, mediante la routine LoGaCo, le quantità lnΓ  a  , lnΓ  b  e
lnΓ  a  b  e calcolando la richiesta funzione Beta (completa) come:

B a, b   exp lnΓ  a   lnΓ  b   lnΓ  a  b  

senza incorrere in overflow. Ad esempio, volendo valutare B(198,3) si ha:


lnΓ  198   847.352097970439

lnΓ  3   0.693147180559945

lnΓ  201   863.231987192405

e, quindi:
B  a, b   exp  15.186742041407   2.5379422364350  10 7

con un’insignificante perdita di precisione.

 L’algoritmo per il calcolo della funzione Beta (completa), comprendente la


tecnica di protezione rispetto all’overflow, è implementato nella routine
BetCom.