В одному застосуванні, швидше за все, вам знадобиться лише невеликий підмножина всіх можливих крайностей узагальненої гіпергеометричної функції. Адже це дуже загальна функція. Маючи уявлення про діапазон і параметри a i , b i, дозволило б дати більш конкретні поради.zаi, бi
Загалом, стандартний метод, припускаючи , звичайно, використовує визначальний ряд потужностей, коли | z | невеликий. Якщо p < q + 1 , то найкраще перейти до асимптотичного розширення, коли | z | великий, або тому, що серія Тейлора конвергується занадто повільно та / або тому, що стає занадто неточною через катастрофічне скасування. Найкраще обрізання між цими алгоритмами залежить від параметрів та вимог до точності.p ≤ q+ 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 / зp > q+ 1
Для повної реалізації також слід розглянути інші питання (наприклад, розробка параметрів, які є надзвичайно великими або дуже близькими до від'ємних цілих чисел). Для досить поганих параметрів буде дуже важко отримати точні значення з подвійною точністю, незалежно від того, що ви робите, тому може знадобитися арифметика довільної точності.
Слід зазначити, що я написав майже повну чисельну реалізацію узагальненої гіпергеометричної функції для бібліотеки mpmath (на даний момент відсутній асимптотичний ряд для функцій, вищих ніж 2Ж3