| |
|
|
p.specht
| Jakob Bernoulli's Vorschlag uno kontinuierlichen Función en lugar de el sólo para ganzzahlige positive Werte definierten Fakultät wurde de Leonard Euler 1729 aufgegriffen y gipfelte en uno muy komplizierten, en el Negativen komplexwertigen Función, el 'Gamma-Funktion'. Diese kann a dato sólo erheblichem Aufwand o más weniger genau numerisch angenähert berechnet voluntad.
Daß esta Función pero no el einzige Möglichkeit darstellt, vernünftige Zwischenwerte zwischen natürlichzahligen Fakultäten a berechnen, wurde algunos Jahrzehnte später klar: Mathematiker como etwa Hadamard machten Propuestas, a störenden Unendlichkeitsstellen y Diskontinuitäten en el negativen Página el Zahlenachse a beseitigen.
Regelmäßig, y el a en unserer Tage, voluntad siempre otra vez Versuche unternommen, el sperrige Gammafunktion endlich por elegantere Varianten a sustituir. Ein Vorschlag de Herrn (p.t.) Peter Luschny de 2006 por ejemplo schlägt una besonders elegante y glatte Funktionskurve con vielen interessanten mathematischen Características antes. Como stets gefordert, ha estos 'Luschny-L'-Función el Eigenschaft, a ganzzahligen Eingabewerten el entsprechenden, auch schulüblich ausmultiplizierbaren Fakultätswerte anzunehmen. El Berechnung es bajo Anwendung weiterer, sin embargo bien erforschter zahlentheoretischer Características. Anbei una XProfan-Demoversion des entsprechenden, en su Homepage veröffentlichten, C-Sharp-Programmes.
Referencia: Das Urheberrecht liegt vollständig en Herrn P. Luschny! Ein Referencia en seine Homepage findet se en el Programmtext.
Título de la ventana "Die Luschny-L-Función - glatter y eleganter como el Bernoulli/Euler-Gamma"
' C#-Quelle: Appx.4 of https://www.luschny.de/math/factorial/hadamard/HadamardsGammaFunction.html
' Achtung: El vollen Urheberrechte mentira allein en Herrn (p.t.) Peter Luschny!
'(DT) Demo-Translation to XProfan11.2a en 2014-10 by P.Pájaro carpintero, Wien (Austria); Ohne Gewähr!
Ventana de Estilo 24:Ventana 0,0-%maxx,%maxy-40:font 2:set("decimals",14)
var xh&=width(%hwnd)/2:var yh&=height(%hwnd)/2
line 0,yh&-2*xh&,yh&:line xh&,0-xh&,2*yh&
usepen 0,2,255
moveto 0,yh&-LFactorial(&Loop/10)
whileloop -100,100
imprimir " ";format$("%g",&Loop/10),tab(10);format$("%g",LFactorial(&Loop/10));mkstr$(" ",42-%pos)
caso %csrlin>42:locate 1,1
lineto xh&+5*&Loop,yh&-10*LFactorial(&Loop/10)
endwhile
beep
waitinput
end
proc Psi :parámetros x!
declarar psi!,piCotpix!,resultado!,C!,r!
caso (x!<=0) and (x!=Round(x!,0)):volver -9999999
if x!<0' reflection formula
psi! = Psi(1-x!)
piCotpix! = -Pi()/Tan(-Pi()*x!)
volver psi! - piCotpix!
endif
caso x!<=val("1e-6"):volver -0.57721566490153286 + 1.6449340668482264365 * x! - 1/x!
resultado! = 0
C! = 12
mientras que x!<C!
resultado!=resultado!-1/x!
x!=x!+1
endwhile
r! = 1/x!
resultado!=resultado!+ Ln(x!) - 0.5 * r!
r! = r!*r!
r!=r!*(1/12-(r!*(1/120-(r!*(1/252-(r!*(1/240-(r!*1/132))))))) )
volver resultado!-r!
ENDPROC'Psi
proc LnFactorial :parámetros z!
'//const double a0 = 1.0 / 12.0;
'//const double a1 = 1.0 / 30.0;
'//const double a2 = 53.0 / 210.0;
'//const double a3 = 195.0 / 371.0;
'//const double a4 = 22999.0 / 22737.0;
'//const double a5 = 29944523.0 / 19733142.0;
'//const double a6 = 109535241009.0 / 48264275462.0;
var a0! = 0.0833333333333333333333333;
var a1! = 0.0333333333333333333333333;
var a2! = 0.252380952380952380952381;
var a3! = 0.525606469002695417789757;
var a4! = 1.01152306812684171174737;
var a5! = 1.51747364915328739842849;
var a6! = 2.26948897420495996090915;
var sqrt2Pi! = 0.91893853320467274;
z! = z! + 1
volver sqrt2Pi! + (Z! - 0.5) * Ln(Z!) - Z! + \
a0!/(Z!+a1!/(Z!+a2!/(Z!+a3!/(Z!+a4!/(Z!+a5!/(Z!+a6!/Z!))))))
ENDPROC
proc Factorial :parámetros x!
caso (x!<0) and (x!=Round(x!,0)):volver -999999999
caso x!=0:volver 1
var y! = x!
var p! = 1
mientras que y!<8:p!=p!*y!:y!=y!+1:endwhile
var r! = Exp(LnFactorial(y!))
if x!<8:r!=(r!*x!)/(p!*y!):endif
volver r!
ENDPROC
proc LFactorial :parámetros x!
caso x!=0:volver 0.5
var y! = if(x!<0,-x!*0.5,x!*0.5)
var G! = y! * (Psi(y!+0.5) - Psi(y!)) - 0.5
caso x!<0:volver G!/Factorial(-x!)
y! = Pi()*x!
var S! = Sin(y!)/y!
volver (1 - S! * G!) * Factorial(x!)
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 16.05.2021 ▲ |
|
|
|