Jakie są wydajne, dokładne algorytmy oceny funkcji hipergeometrycznych?

16

Jestem ciekawy, jakie istnieją dobre algorytmy numeryczne do oceny uogólnionej funkcji hipergeometrycznej (lub serii), zdefiniowanej jako

pFq(a1,,ap;b1,,bq;z)=k=0(a1)k(ap)k(b1)k(bq)kzkk!

Ogólnie rzecz biorąc, ta seria niekoniecznie będzie zbieżna bardzo szybko (lub wcale), więc sumowanie pojedynczych terminów wydaje się mniej niż idealne. Czy istnieje jakaś alternatywna metoda, która działa lepiej? Mówiąc konkretnie, szukam czegoś, co da 4 lub 5 cyfr precyzji przy rozsądnej liczbie obliczeń.

Do najczęstszych przypadków, które zwykle wykorzystywane są patrz i p = 2 , q = 1 , ale w konkretnym projekcie pracuję nad mam potrzebę p = 1 , q = 2 . Oczywiście ogólny algorytm dla każdego p i q jest idealny, ale wezmę to, co mogę.p=1,q=1p=2),q=1p=1,q=2)pq

David Z
źródło
Jeśli twoja sprawa nie jest ujęta w Podręczniku Abramowitza i Steguna ( people.math.sfu.ca/~cbm/aands/subj.htm ), a tak nie jest, jesteś zasadniczo skazany na samodzielne rozwikłanie tego, ja ” boję się ...
Jaime,

Odpowiedzi:

15

W pojedynczej aplikacji jest raczej prawdopodobne, że będziesz potrzebować tylko niewielkiego podzbioru wszystkich możliwych ekstremów uogólnionej funkcji hipergeometrycznej. W końcu jest to bardzo ogólna funkcja. Mając pomysł o zakresie i parametrów w I , b i pozwoliłoby dając bardziej szczegółowe informacje.zzaja,bja

Zasadniczo standardową metodą, przy założeniu , jest oczywiście użycie definiujących szeregów mocy, gdy | z | jest mały. Gdybypq+1|z| , najlepiej przełączyć na ekspansję asymptotyczną, gdy | z | jest duża, albo dlatego, że seria Taylora zbiega się zbyt wolno i / lub ponieważ staje się zbyt niedokładna z powodu katastrofalnego anulowania. Najlepszy punkt odcięcia między tymi algorytmami zależy od parametrów i wymagań dokładności.p<q+1|z|

Dla asymptotycznej seria jest przezhttp://functions.wolfram.com/HypergeometricFunctions/Hypergeometric1F2/06/02/03/Wygląda to dość straszne, ale jeśli1F2 są stałe, można z góry obliczyć wartości liczbowe dla współczynników. Ogólne formuły znajdują się w DLMF:http://dlmf.nist.gov/16.11(Należy pamiętać, że należy zachować ostrożność, aby wybrać prawidłowe cięcia gałęzi.)a1,b1,b2

z

Jeśli potrzebujesz funkcji z na całej płaszczyźnie złożonej, to 1 /p=q+11/zp>q+1

Aby uzyskać pełną implementację, należy również rozważyć inne kwestie (na przykład dotyczące parametrów, które są bardzo duże lub bardzo zbliżone do ujemnych liczb całkowitych). W przypadku wystarczająco złych parametrów bardzo trudno będzie uzyskać dokładne wartości z podwójną precyzją, bez względu na to, co zrobisz, więc arytmetyka o dowolnej dokładności może być potrzebna.

Powinienem zauważyć, że napisałem prawie całkowitą implementację numeryczną uogólnionej funkcji hipergeometrycznej dla biblioteki mpmath (obecnie brakuje szeregów asymptotycznych dla funkcji wyższych niż 2F3

Fredrik Johansson
źródło
Doskonały! Niestety nie mogę tak naprawdę bardziej szczegółowo określić wartości parametrów, ponieważ funkcja pojawia się w wielu miejscach z różnymi wartościami. Na pewno będę zainteresowany używaniem i / lub analizowaniem twojej implementacji w mpmath w pewnym momencie.
David Z
1
Odpowiedź Fredrika jest poprawna. Chciałbym tylko zaznaczyć, że ostatecznie zastosowałem racjonalne przybliżenie (z Mathematica) dla specjalnych wartości współczynników „a” i „b”, ponieważ jest ono dokładne dla wszystkich rzeczywistych „z” (dzielę rzeczywistą oś na interwały i zastosował inne racjonalne przybliżenie na każdym) i bardzo szybko. Użyłem mpmath, aby sprawdzić dokładność mojej implementacji podwójnej precyzji w Fortranie.
Ondřej Čertík,
2

Kanonicznym odniesieniem dla wszystkich funkcji specjalnych jest Abramowicz i Stegun. Jest to książka, która jest już dostępna od około pół wieku, a jeśli czegoś nie można w niej znaleźć, spójrz na „zaktualizowaną drugą edycję”, która w rzeczywistości jest stroną internetową organizowaną przez National Institute of Standards (NIST ). Nie mam dokładnego adresu URL, ale nie powinno być trudno go znaleźć.

Wolfgang Bangerth
źródło
2
Teraz nazywa się to „Cyfrową biblioteką funkcji matematycznych”; funkcje hipergeometryczne są przedmiotem rozdziału 15 .
Christian Clason,
1
2F11F2