Jestem ciekawy, jakie istnieją dobre algorytmy numeryczne do oceny uogólnionej funkcji hipergeometrycznej (lub serii), zdefiniowanej jako
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ę.
special-functions
David Z
źródło
źródło
Odpowiedzi:
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.z zaja, bja
Zasadniczo standardową metodą, przy założeniu , jest oczywiście użycie definiujących szeregów mocy, gdy | z | jest mały. Gdybyp≤q+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
Jeśli potrzebujesz funkcji z na całej płaszczyźnie złożonej, to 1 /p=q+1 1/z p>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
źródło
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źć.
źródło