Які ефективні, точні алгоритми для оцінки гіпергеометричних функцій?


16

Мені цікаво знати, які хороші числові алгоритми існують для оцінки узагальненої гіпергеометричної функції (або серії), визначеної як

pЖq(а1,,аp;б1,,бq;z)=к=0(а1)к(аp)к(б1)к(бq)кzкк!

Взагалі цей ряд не обов'язково збирається дуже швидко (або взагалі), тому підбиття підсумків один за одним здається менш ідеальним. Чи існує якийсь альтернативний метод, який працює краще? Щоб бути конкретним, я шукаю щось, що дасть 4 або 5 цифр точності з розумною кількістю обчислень.

Найпоширеніші випадки, які я зазвичай бачу використаними, це і p = 2 , q = 1 , але в конкретному проекті, над яким я працюю, у мене є потреба у p = 1 , q = 2 . Очевидно, що загальний алгоритм для будь-яких p і q є ідеальним, але я візьму те, що можу отримати.p=1,q=1p=2,q=1p=1,q=2pq


Якщо ваш випадок не висвітлений у посібнику Абрамовіца та Стегуна ( people.math.sfu.ca/~cbm/aands/subj.htm ), чого це не так, ви в основному приречені зрозуміти це самостійно, я ' боюся ...
Хайме

Відповіді:


15

В одному застосуванні, швидше за все, вам знадобиться лише невеликий підмножина всіх можливих крайностей узагальненої гіпергеометричної функції. Адже це дуже загальна функція. Маючи уявлення про діапазон і параметри a i , b i, дозволило б дати більш конкретні поради.zаi,бi

Загалом, стандартний метод, припускаючи , звичайно, використовує визначальний ряд потужностей, коли | z | невеликий. Якщо p < q + 1 , то найкраще перейти до асимптотичного розширення, коли | z | великий, або тому, що серія Тейлора конвергується занадто повільно та / або тому, що стає занадто неточною через катастрофічне скасування. Найкраще обрізання між цими алгоритмами залежить від параметрів та вимог до точності.pq+1|z|p<q+1|z|

Для асимптотический ряд задаєтьсяhttp://functions.wolfram.com/HypergeometricFunctions/Hypergeometric1F2/06/02/03/Це виглядає досить жахливо, але якщо ваш 1 , б 1 , б 2 фіксовані, ви можете заздалегідь обчислити числові значення для коефіцієнтів. Загальні формули можна знайти в DLMF:http://dlmf.nist.gov/16.11(зауважте, що для вибору правильнихобрізів гілокпотрібна певна обережність.)1Ж2а1,б1,б2

z

p=q+11/zp>q+1

Для повної реалізації також слід розглянути інші питання (наприклад, розробка параметрів, які є надзвичайно великими або дуже близькими до від'ємних цілих чисел). Для досить поганих параметрів буде дуже важко отримати точні значення з подвійною точністю, незалежно від того, що ви робите, тому може знадобитися арифметика довільної точності.

Слід зазначити, що я написав майже повну чисельну реалізацію узагальненої гіпергеометричної функції для бібліотеки mpmath (на даний момент відсутній асимптотичний ряд для функцій, вищих ніж 2Ж3


Відмінно! На жаль, я не можу отримати більш конкретні дані щодо значень параметрів, оскільки функція з'являється в багатьох місцях з різними значеннями. Мені напевно буде цікаво використовувати та / або переглянути вашу реалізацію в mpmath в якийсь момент.
Девід Z

1
Відповідь Фредріка правильна. Я хотів би лише зазначити, що в кінцевому підсумку я використав раціональне наближення (від Mathematica) для спеціальних значень коефіцієнтів "a" та "b", тому що це точно для всіх реальних "z" (я розділив реальну вісь на інтервали і використовували різне раціональне наближення до кожного) і дуже швидко. Я використовував mpmath, щоб перевірити точність моєї подвійної точності реалізації у Fortran.
Ondřej Čertík

2

Канонічна довідка для всіх спеціальних функцій - Абрамович і Стегун. Це книга, яка вже близько півстоліття, і якщо у ній щось не можна знайти, подивіться на "оновлене друге видання", яке насправді є веб-сайтом, організованим Національним інститутом стандартів (NIST) ). У мене немає точної URL-адреси, але знайти її не слід дуже складно.


2
Зараз це називається "Цифрова бібліотека математичних функцій"; гіпергеометричні функції є предметом глави 15 .
Крістіан Класон

1
2Ж11Ж2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.