| |
|
|
p.specht
| qui Funktion "Faktorielle"ist seulement pour positive GANZE payons défini: 5 ! = 1 * 2 * 3 * 4 * 5 = 120. quoi mais ist z.B. 5.2 ! comment soll on cela le calcul? aussi par-dessus hat sich monsieur Leonard Euler déjà A.D. 1729 Gedanken gemacht: il fand une Funktion, qui ähnlich comment qui faculté funktioniert, mais im gesamten (im nachstehenden Programme seulement positiven) Float-Zahlenbereich Ergebnisse liefert:
Gamma( x+1 ) ergibt ensuite oui c'est ca x ! . veux on alors qui faculté de 5.2 savons, berechne on qui Gamma-Funktion pour 6.2: qui Antwort: 5.2! = Gamma(6.2) = 169.406099462... bien sûr, vous mußte oui größer comme 120 et kleiner comme 6!=720 son...
Verwendet wird cela z.B. dans qui Versicherungsmathematik zur Bestimmung kleiner et mittlerer Schadenswahrscheinlichkeiten, ou bien dans qui Nachrichtentechnik, wohin vous qui Grundlage qui sog. Gammaverteilung darstellt, qui dans Verkehrsauslastungsgleichungen (Netzwerkkapazitäts-Dimensionierung) zur Anwendung venez. qui Gammafunktion-1 steht incidemment aussi im Google-Sucheingabefeld zur Disposition: simple ' 5.2 ! ' eingeben...
Titre de la fenêtre "Gamma-Funktion pour Reelle Werte > 0 "
' Fortran90-Source: https://jean-pierre.moreau.pagesperso-orange.fr/Fortran/gamma_f90.txt
' Migriert pour XProfan11.2a 2014-10 by P.Specht, Wien; sans jedwede Gewähr!
' Details: https://de.wikipedia.org/wiki/Gammafunktion bzw.
' https://en.wikipedia.org/wiki/Stirling%27s_approximation#Versions_suitable_for_calculators
Fenêtre Style 24:font 2:randomize
Fenêtre %maxx/4,%maxy/4-%maxx/2,%maxy/2
Main:
Test_Gamma
Waitinput
Fin
'*********************************************
'* Program to demonstrate le Gamma Function *
'* ----------------------------------------- *
'* Reference: *
'* "Numerical Recipes, by W.H. Press, B.P. *
'* Flannery, S.A. Teukolsky and T. Vetter- *
'* ling, Cambridge University Press, 1986" *
'* [BIBLI 08]. *
'* ----------------------------------------- *
'* SAMPLE RUN: *
'* *
'* X Gamma(X) *
'* ------------------------- *
'* 0.5000 1.772453851 *
'* 1.0000 1.000000000 *
'* 1.5000 0.886226925 *
'* 2.0000 1.000000000 *
'* 2.5000 1.329340388 *
'* 3.0000 2.000000000 *
'* 3.5000 3.323350970 *
'* 4.0000 5.999999999 *
'* 4.5000 11.631728395 *
'* 5.0000 23.999999996 *
'* *
'*********************************************
PROC Test_Gamma
declare x!,y!
declare i&
imprimer
imprimer " X Gamma(X) "
imprimer " __________________________________ "
x!=0
whileloop 100
x!=x!+0.1
y! = Gamma(x!)
Imprimer "\n";format$(" ##0.0####",x!),tab(14);format$("%g",round(y!,15))
cas %csrlin>20:waitinput
endwhile
imprimer
waitinput
endproc
proc Gamma :parameters xx!
'*******************************************
'* FUNCTION GAMMA(X) *
'* --------------------------------------- *
'* Returns le value of Gamma(x) dans double *
'* precision as EXP(LN(GAMMA(X))) for X>0. *
'*******************************************
cas xx!<=0:return 0
declare cof![6],x!,tmp!,ser!,stp!,half!,one!,fpf!,j&,gamma!
cof![1]=76.18009173:cof![2]=-86.50532033:cof![3]=24.01409822
cof![4]=-1.231739516:cof![5]=0.00120858003:cof![6]=-0.00000536382
stp!=2.50662827465:half!=0.5:one!=1.0:fpf!=5.5
x!=xx!-one!
tmp!=x!+fpf!
tmp!=(x!+half!)*LN(tmp!)-tmp!
ser!=one!
whileloop 6:j&=&Boucle
x!=x!+one!
ser!=ser!+cof![j&]/x!
endwhile
Gamma! = EXP(tmp!+LN(stp!*ser!))
return Gamma!
endproc
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 15.05.2021 ▲ |
|
|
|