Newsgroup: it.comp.lang.visual-basic
Titolo: funzione Gamma

Salve a tutti,
c'è un modo veloce di ottenere la funzione Gamma in VB?
Intendo la funzione Gamma(x) che generalizza il fattoriale a qualsiasi 
numero reale.
Grazie,
Daniele 

 numero reale.
Che risultati ottieni calcolando numericamente l'integrale?
-- 
Emanuele Torrenti
http://torrenti.altervista.org
http://www.torrenti.tk

Daghi ha scritto:

Vedi se qui trovi qualche risposta(approssimata):
http://mathworld.wolfram.com/GammaFunction.html


 
http://mathworld.wolfram.com/GammaFunction.html
Ti ringrazio per il link, come è definita la funzione lo so; solo speravo ci 
fosse già un aiuto in qualche funzione standard che non conoscevo.
Implementare un'integrazione numerica, anche solo con i buoni vecchi trapezi 
implicava fatica e imprecisione, speravo ci fosse da qualche parte un metodo 
più preciso e stabile. :)
Vabbé, al massimo mi trapezierò un po'.
Grazie mille
Daniele 

 numero reale.
Qua forse trovi qualcosa di utile:
http://yacas.sourceforge.net/Algochapter6.html
Bye
Raf

 numero reale.
Ti allego una routine in FORTRAN per il calcolo
della funzione Gamma(x): non credo che tu possa
avere difficolta' a tradurla in VB ma, se ce ne
fossero, contattami pure.
Ciao, sperando di esserti stato utile.
Franco
C     ..................................................................
C
C        SUBROUTINE GMMMA
C
C        PURPOSE
C           COMPUTES THE GAMMA FUNCTION FOR A GIVEN ARGUMENT
C
C        USAGE
C           CALL GMMMA(XX,GX,IER)
C
C        DESCRIPTION OF PARAMETERS
C           XX -THE ARGUMENT FOR THE GAMMA FUNCTION
C           GX -THE RESULTANT GAMMA FUNCTION VALUE
C           IER-RESULTANT ERROR CODE WHERE
C               IER=0  NO ERROR
C               IER=1  XX IS WITHIN .000001 OF BEING A NEGATIVE INTEGER
C               IER=2  XX GT 57, OVERFLOW, GX SET TO 1.0E75
C
C        REMARKS
C           NONE
C
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
C           NONE
C
C        METHOD
C           THE RECURSION RELATION AND POLYNOMIAL APPROXIMATION
C           BY C.HASTINGS,JR., 'APPROXIMATIONS FOR DIGITAL COMPUTERS',
C           PRINCETON UNIVERSITY PRESS, 1955
C
C     ..................................................................
C
       SUBROUTINE GMMMA(XX,GX,IER)
       IF(XX-57.)6,6,4
     4 IER=2
       GX=1.7E38
       RETURN
     6 X=XX
       ERR=1.0E-6
       IER=0
       GX=1.0
       IF(X-2.0)50,50,15
    10 IF(X-2.0)110,110,15
    15 X=X-1.0
       GX=GX*X
       GO TO 10
    50 IF(X-1.0)60,120,110
C
C        SEE IF X IS NEAR NEGATIVE INTEGER OR ZERO
C
    60 IF(X-ERR)62,62,80
    62 Y=FLOAT(INT(X))-X
       IF(ABS(Y)-ERR)130,130,64
    64 IF(1.0-Y-ERR)130,130,70
C
C        X NOT NEAR A NEGATIVE INTEGER OR ZERO
C
    70 IF(X-1.0)80,80,110
    80 GX=GX/X
       X=X+1.0
       GO TO 70
   110 Y=X-1.0
       GY=1.0+Y*(-0.5771017+Y*(+0.9858540+Y*(-0.8764218+Y*(+0.8328212+
      1Y*(-0.5684729+Y*(+0.2548205+Y*(-0.05149930)))))))
       GX=GX*GY
   120 RETURN
   130 IER=1
       RETURN
       END

 fossero, contattami pure.
Ti ringrazio molto. Non dovrei avere problemi.
Avevo provato ad approssimarla con una serie che però a quanto pare converge
molto lentamente. Ora do un'occhiata al tuo codice.
Grazie anche a Rafunk per il link.
Daniele