Gammafunktionen

Absolutvärdet av gammafunktionen i det komplexa talplanet.

Gammafunktionen är en matematisk funktion som generaliserar fakulteten n!, det vill säga heltalsprodukten 1 · 2 · 3 · ... · n, till de reella talen och även de komplexa. Den definierades 1729 av Leonhard Euler och betecknas . Gammafunktionen används inom många områden av matematiken, bland annat för lösningar till integraler och räknas som en av de viktigaste speciella funktionerna.

Bakgrund

Fakulteten av ett naturligt tal n, betecknad n!, är produkten av alla tal mindre än eller lika med talet självt. Således är

1! = 1,
2! = 1 · 2 = 2,
3! = 1 · 2 · 3 = 6,
4! = 1 · 2 · 3 · 4 = 24 och så vidare.

Om man betraktar grafen av punkterna, verkar det troligt att man skulle kunna rita en mjuk kurva som binder ihop dem. Att bestämma den matematiska funktion som svarar mot en sådan kurva är dock inte helt enkelt. Problemet fick sin lösning först 1729, då den schweiziske matematikern Leonhard Euler i ett brev till Christian Goldbach daterat den 13 oktober beskrev den oändliga produkten

Den 8 januari året därpå angav Euler i korrespondens med Goldbach även funktionen i form av den ekvivalenta integralen

.

Det kan visas att Eulers funktion uppfyller den rekursiva identiteten

för alla z. Eftersom generaliserar gammafunktionen därmed fakulteten. Speciellt gäller att

(n icke-negativt heltal)
(n positivt heltal)

Förskjutningen med 1 gentemot fakulteten infördes av Adrien-Marie Legendre, som även introducerade beteckningen (gamma) år 1809. En alternativ notation som undviker förskjutningen är i form av Π-funktionen (ej att förväxla med π-funktionen för primtalen) införd av Carl Friedrich Gauss så att

och

Både Legendre och Gauss gjorde betydande insatser i studiet av gammafunktionen. Funktionen har även undersökts ingående av bland andra Christoph Gudermann, Joseph Liouville, Karl Weierstrass och Charles Hermite.

Med tanke på gammafunktionens komplicerade definition i jämförelse med fakulteten är en naturlig fråga huruvida det finns någon annan, möjligtvis enklare funktion som generaliserar fakulteten. Enligt Bohr–Mollerups sats (1922) är gammafunktionen dock unik att ha den egenskapen, om man lägger till kravet att den sökta funktionens logaritm ska vara konvex.

Definitioner och egenskaper

Graf av gammafunktionen längs den reella tallinjen.

Gammafunktionen är transcendent och kan inte uttryckas på sluten form i termer av elementära funktioner. För z med en positiv realdel definieras den i modern litteratur vanligtvis som den generaliserade integralen

Den här integralen kan med hjälp av variabelsubstitution visas vara identisk med Eulers ursprungliga definition. Att den uppfyller den rekursiva egenskapen kan visas genom partiell integration.

Negativa värden fås genom Eulers reflektionsformel:

Andra viktiga formler är

som är ett specialfall av multiplikationsteoremet

En användbar egenskap som lätt kan verifieras genom att använda gränsvärdsdefinitionen är

Ett användbart gränsvärde är

Gammafunktionen är analytisk i hela det komplexa talplanet, förutom i punkterna {0, −1, −2...} där den har enkla poler. Residyn där är

Serieutvecklingar

Gammafunktionen har följande Laurentexpansion vid 1:

som gäller för |z-1| < 1. De första termerna är

Några andra serieutvecklingar för gammafunktionen är

    då    

och

    då    

Specifika värden

På grund av sambandet med fakulteten antar gammafunktionen heltalsvärden för positiva heltalsargument:

Värden av gammafunktionen kan även härledas för vissa rationella argument. För udda n är

där !! betecknar semifakultet, eller likvärdigt ()

I fallet n=1 löper k i produktsymbolen från 0 till -1, alltså baklänges, och dess produkt tilldelas då standardvärdet 1 eftersom den består av noll faktorer.

Speciellt gäller

Slutna formler för andra värden på gammafunktionen är inte kända. Det är dock känt sedan länge att är transcendent. G. V. Chudnovsky har visat att och är transcendenta. Yuri Nesterenko bevisade år 1996 att , , och är algebraiskt oberoende.

Några formler för är

samt de oändliga produkterna

och

där A är Glaisher–Kinkelins konstant och G är Catalans konstant.

Några snabbt konvergerande oändliga serier av C. H. Brown är

och

där

eller, eftersom är en kub som innehåller ,

Identiteter för produkter av specifika värden är

OEISA186706
OEISA220610
.

Relation till andra funktioner

En annan intressant formel är
som gäller för for Re(z) > 1.
  • Ofullständiga gammafunktionen är också relaterad till gammafunktionen.

Numerisk beräkning

Eftersom gammafunktionen ofta dyker upp i uttryck som används vid vetenskapliga beräkningar, är det av intresse att kunna beräkna den numeriskt med god precision.

För heltalsargument kan gammafunktionen beräknas exakt utifrån motsvarande fakultet. Även värdet för halvtalsargument kan bestämmas exakt, så när som den irrationella faktorn . För godtyckliga reella och komplexa argument kan gammafunktionens värde dock endast approximeras. Detta är i sin tur inte enkelt, eftersom exempelvis framställning i form av en Maclaurinserie inte konvergerar. Mer avancerade metoder har dock härletts. En av de mest välkända är Lanczos approximation

där konstanten g kan väljas godtyckligt och A(z) är en snabbt konvergerande summa med koefficienter som kan beräknas i förväg. Beroende på valet av g kan godtycklig precision erhållas.

Nackdelen med Lanczos metod är att koefficienterna är tidskrävande att beräkna. Ett alternativ är att använda Spouges approximation, som använder ett liknande grunduttryck men enklare koefficienter för summeringen. Dock konvergerar Spouges approximation långsammare, och eftersom koefficienter som är giltiga för alla z kan beräknas i förväg om en fix precision önskas, är Lanczos metod att föredra. Lanczos approximation, med lagrade koefficienter, rekommenderas av Numerical Recipes och används till exempel av GNU Scientific Library.

Ytterligare en metod är Stirlings approximation. Den lämpar sig särskilt väl för mycket stora argument, men fungerar i gengäld inte alls för mycket små argument.

Oberoende av metod, finns några allmängiltiga anmärkningar för numerisk beräkning av gammafunktionen. Till att börja med, är det ofta mer praktiskt att arbeta med gammafunktionens logaritm, eftersom gammafunktionen växer så snabbt att resultatet kan skapa overflow. En annan är att negativa argument enklast (och i vissa fall endast kan) hanteras via reflektionsformeln. Slutligen räcker det i princip att kunna approximera gammafunktionen på ett intervall, eftersom såväl större som mindre argument tack vare gammafunktionens multiplikativa egenskap kan hanteras genom upprepad multiplikation respektive division över skillnaden mellan det valda intervallet och argumentet (detta är dock inte nödvändigtvis praktiskt).

Exempel på implementation

Följande enkla implementation av Lanczos metod i Python tar såväl reella som komplexa argument och ger upp till cirka 15 korrekta decimaler:

from cmath import *

# Koefficienter från GNU Scientific Library
g = 7
C = [0.99999999999980993, 676.5203681218851, -1259.1392167224028,
     771.32342877765313, -176.61502916214059, 12.507343278686905,
     -0.13857109526572012, 9.9843695780195716e-6, 1.5056327351493116e-7]

def gamma(z):
    z = complex(z)
    # Reflektionsformeln
    if z.real < 0.5:
        return pi / (sin(pi*z)*gamma(1-z))
    else:
        z -= 1
        x = C[0]
        for i in range(1, g+2):
            x += C[i]/(z+i)
        t = z + g + 0.5
        return sqrt(2*pi) * t**(z+0.5) * exp(-t) * x

Se även

Källor

Externa länkar

Media som används på denna webbplats

Gamma abs.png
The absolute value of the Gamma function. Created with Maple: plot3d(abs(GAMMA(Re+I*Im)),Re=-5..5,Im=-5..5,view=[-5..5,-5..5,0..6],grid=[40,40],orientation=[-120,60],axes=frame,contours=120,style=PATCHCONTOUR);
Gamma plot.svg
Författare/Upphovsman: Alessio Damato, Licens: CC BY-SA 3.0

Plot of the Gamma function . The plot was produced running Gnuplot on the following code:

set terminal svg
set output "Gamma_plot.svg"
set title "Gamma function"
set xrange [-10:10]
set yrange [-10:10]
set key off
set xzeroaxis linetype -1 linewidth 0.5
set yzeroaxis linetype -1 linewidth 0.5
set xtics axis
set ytics axis
plot "gamma.dat" using 1:2 with lines linewidth 2

the file "gamma.dat" contains the values of the Gamma function and can be produced with the following Matlab commands (it is meant to work in Octave, too, but it returns an error in version 2.1.64):

t = -5:0.01:5;
G = [ t; gamma(t) ];
G = G';
save -ascii "gamma.dat" G;
it was then post-processed with Sodipodi.