Español
Fuente/ Codesnippets

Moderne Alternativen a Gammafunktion (Kontinuierliche Faktorielle+1-Función)

 

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 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
16.05.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.471 Views

Untitledvor 0 min.
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie