Français
Source/ Codesnippets

Moderne Alternativen zur Gammafunktion (Kontinuierliche Faktorielle+1-Funktion)

 

p.specht

Jakob Bernoulli's Vorschlag einer kontinuierlichen Funktion statt qui seulement pour ganzzahlige positive Werte definierten faculté wurde de Leonard Euler 1729 aufgegriffen et gipfelte dans einer très komplizierten, im Negativen komplexwertigen Funktion, qui 'Gamma-Funktion'. cet peux jusqu'à dato seulement avec erheblichem Aufwand plus ou bien moins oui c'est ca numerisch angenähert berechnet volonté.

sofern cet Funktion mais pas qui einzige Possibilité darstellt, vernünftige Zwischenwerte entre natürlichzahligen Fakultäten trop berechnen, wurde quelques Jahrzehnte später bien sûr: Mathematiker comment etwa Hadamard machten Propositions, à störenden Unendlichkeitsstellen et Diskontinuitäten sur qui negativen page qui Zahlenachse trop beseitigen.

régulier, et cela jusqu'à dans unserer Tage, volonté toujours wieder Versuche unternommen, qui sperrige Gammafunktion enfin par elegantere Varianten trop ersetzen. un Vorschlag de Herrn (p.t.) Peter Luschny aus 2006 beispielsweise schlägt une besonders elegante et glatte Funktionskurve avec vielen interessanten mathematischen Eigenschaften avant. comment stets gefordert, hat aussi cet 'Luschny-L'-Funktion qui qualité, à ganzzahligen Eingabewerten qui entsprechenden, aussi schulüblich ausmultiplizierbaren Fakultätswerte anzunehmen. qui Berechnung erfolgt sous Anwendung weiterer, cependant bien erforschter zahlentheoretischer Funktionen. Anbei une XProfan-Demoversion des entsprechenden, sur seiner Page d'accueil veröffentlichten, C-Sharp-Programmes.

Hinweis: cela Urheberrecht liegt vollständig chez Herrn P. Luschny! un Hinweis sur sa Page d'accueil findet sich im Programmtext.
Titre de la fenêtre "Die Luschny-L-Funktion - glatter et eleganter comme cela Bernoulli/Euler-Gamma"
' C#-source: Appx.4 of https://www.luschny.de/math/factorial/hadamard/HadamardsGammaFunction.html
' attention: qui vollen Urheberrechte liegen seul chez Herrn (p.t.) Peter Luschny!
'(DT) Demo-Translation to XProfan11.2a dans 2014-10 by P.Specht, vienne (Austria); sans Gewähr!
Fenêtre Style 24:Fenêtre 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(&Boucle/10)

whileloop -100,100

    imprimer " ";format$("%g",&Boucle/10),tab(10);format$("%g",LFactorial(&Boucle/10));mkstr$(" ",42-%pos)
    cas %csrlin>42:locate 1,1
    lineto xh&+5*&Boucle,yh&-10*LFactorial(&Boucle/10)

endwhile

beep
waitinput
end

proc Psi :parameters x!

    declare psi!,piCotpix!,result!,C!,r!
    cas (x!<=0) and (x!=Round(x!,0)):return -9999999

    si x!<0' reflection formula

        psi! = Psi(1-x!)
        piCotpix! = -Pi()/Tan(-Pi()*x!)
        return psi! - piCotpix!

    endif

    cas x!<=val("1e-6"):return -0.57721566490153286 + 1.6449340668482264365 * x! - 1/x!
    result! = 0
    C! = 12

    tandis que x!<C!

        result!=result!-1/x!
        x!=x!+1

    endwhile

    r! = 1/x!
    result!=result!+ Ln(x!) - 0.5 * r!
    r! = r!*r!
    r!=r!*(1/12-(r!*(1/120-(r!*(1/252-(r!*(1/240-(r!*1/132))))))) )
    return result!-r!

endproc'Psi

proc LnFactorial :parameters 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
    return sqrt2Pi! + (Z! - 0.5) * Ln(Z!) - Z! +  \
    a0!/(Z!+a1!/(Z!+a2!/(Z!+a3!/(Z!+a4!/(Z!+a5!/(Z!+a6!/Z!))))))

endproc

proc Factorial :parameters x!

    cas (x!<0) and (x!=Round(x!,0)):return -999999999
    cas x!=0:return 1
    var y! = x!
    var p! = 1

    tandis que y!<8:p!=p!*y!:y!=y!+1:endwhile

        var r! = Exp(LnFactorial(y!))

        si x!<8:r!=(r!*x!)/(p!*y!):endif

            return r!

        endproc

        proc LFactorial :parameters x!

            cas x!=0:return 0.5
            var y! = si(x!<0,-x!*0.5,x!*0.5)
            var G! = y! * (Psi(y!+0.5) - Psi(y!)) - 0.5
            cas x!<0:return G!/Factorial(-x!)
            y! = Pi()*x!
            var S! = Sin(y!)/y!
            return (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


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.479 Views

Untitledvor 0 min.
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie