Dalam satu aplikasi, agaknya Anda hanya membutuhkan subset kecil dari semua kemungkinan ekstrem dari fungsi hipergeometrik umum. Bagaimanapun, ini adalah fungsi yang sangat umum. Memiliki gagasan tentang kisaran dan parameter a i , b i akan memungkinkan memberikan saran yang lebih spesifik.zSebuahsaya, bsaya
Secara umum, metode standar, dengan asumsi , tentu saja menggunakan seri daya pendefinisian ketika | z | kecil. Jika p < q + 1 , yang terbaik adalah beralih ke ekspansi asimptotik saat | z | besar, baik karena seri Taylor menyatu terlalu lambat dan / atau karena menjadi terlalu tidak akurat karena pembatalan bencana. Cutoff terbaik antara algoritma ini tergantung pada parameter dan persyaratan akurasi.p ≤ q+ 1| z|p < q+ 1| z|
Untuk seri asimptotik diberikan olehhttp://functions.wolfram.com/HypergeometricFunctions/Hypergeometric1F2/06/02/03/Tampaknya agak mengerikan, tetapi jika a 1 , b 1 , b 2 sudah diperbaiki, Anda dapat hitung nilai numerik untuk koefisien terlebih dahulu. Rumus umum ditemukan di DLMF:http://dlmf.nist.gov/16.11(Perhatikan bahwa diperlukan kehati-hatian untuk memilih pemotongan cabang yang benar.)1F2Sebuah1, b1, b2
Jika ada rentang di mana baik seri Taylor maupun seri asymptotic bekerja dengan cukup baik, "ekspansi yang ditingkatkan secara eksponensial" mungkin berguna. Kemungkinan lain yang layak disebutkan adalah bahwa Anda bisa memasukkan persamaan diferensial hiperometrik ke pemecah ODE tujuan umum. Ini harus bekerja dengan baik terutama jika Anda hanya perlu 4-5 digit. Ini dapat digunakan untuk melakukan kelanjutan analitik dari kecil (di mana seri daya bekerja dengan baik) ke yang lebih besar, atau secara terbalik dari nilai yang diperoleh melalui seri asimptotik (Anda mungkin perlu melakukan sedikit lebih banyak pekerjaan untuk mendapatkan semua turunan diperlukan sebagai nilai awal).z
Jika Anda memerlukan fungsi dengan pada seluruh bidang kompleks maka rumus transformasi 1 / z dapat digunakan untuk memetakan bagian luar unit disk ke interior. Beberapa algoritma akselerasi konvergensi atau metode lain, seperti integrasi numerik dari ODE, harus digunakan dekat dengan lingkaran unit. Jika p > q + 1 jari-jarinya konvergensi adalah nol, jadi jika fungsi yang ingin Anda evaluasi diberikan oleh deret yang berbeda, Anda mungkin perlu menerapkan transformasi Borel (secara numerik atau simbolis) untuk menguranginya menjadi deret konvergen.p = q+ 11/zp>q+1
Untuk implementasi yang lengkap, ada masalah lain yang perlu dipertimbangkan juga (misalnya, berurusan dengan parameter yang sangat besar atau sangat dekat dengan bilangan bulat negatif). Untuk parameter yang cukup buruk, akan sangat sulit untuk mendapatkan nilai yang akurat dengan presisi ganda, apa pun yang Anda lakukan, jadi aritmatika presisi arbitrer mungkin diperlukan.
Saya harus mencatat bahwa saya telah menulis implementasi numerik yang hampir lengkap dari fungsi hypergeometric umum untuk pustaka mpmath (saat ini tidak ada seri asimptotik untuk fungsi yang lebih tinggi daripada 2F3