Hipergeometrik fonksiyonların değerlendirilmesi için etkili ve doğru algoritmalar nelerdir?


16

Genel hipergeometrik fonksiyonun (veya serilerin) değerlendirilmesi için hangi sayısal algoritmaların mevcut olduğunu bilmek isterim .

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

Genel olarak, bu seri çok hızlı bir şekilde (veya hiç) birleşmeyecek, bu yüzden terimleri tek tek toplamak ideal olmaktan daha az görünüyor. Daha iyi çalışan alternatif bir yöntem var mı? Spesifik olarak, makul sayıda hesaplama ile 4 veya 5 basamak hassasiyet verecek bir şey arıyorum.

Genellikle kullanıldığını gördüğüm en yaygın durumlar ve p = 2 , q = 1'dir , ancak üzerinde çalıştığım projede p = 1 , q = 2'ye ihtiyacım var . Açıkçası herhangi bir p ve q için genel bir algoritma idealdir, ancak alabileceğimi alacağım.p=1,q=1p=2,q=1p=1,q=2pq


Durumunuz Abramowitz ve Stegun'un El Kitabında ( people.math.sfu.ca/~cbm/aands/subj.htm ) ele alınmamışsa, temelde kendi başınıza anlamaya mahkumsunuz , ' korkarım ...
Jaime

Yanıtlar:


15

Tek bir uygulamada, genelleştirilmiş hipergeometrik fonksiyonun tüm olası uçlarının sadece küçük bir alt kümesine ihtiyacınız olacaktır. Ne de olsa çok genel bir işlevdir. Aralığında hakkında fikir ve parametrelerin bir i , b i daha özel tavsiyeler vererek izin istiyorum.zbirben,bben

Genel olarak, olduğu varsayılan standart yöntem elbette tanımlayıcı güç serilerini | z | küçük. Eğer p < q + 1 , bir asimtotik açılım geçiş için en iyi olduğu zaman | z | Taylor serisinin çok yavaş birleşmesi ve / veya felaket iptali nedeniyle çok yanlış olması nedeniyle büyüktür. Bu algoritmalar arasındaki en iyi kesme, parametrelere ve doğruluk gereksinimlerine bağlıdır.pq+1|z|p<q+1|z|

İçin asimptotik seri verilirhttp://functions.wolfram.com/HypergeometricFunctions/Hypergeometric1F2/06/02/03/Oldukça korkunç görünüyor, ama eğer senin bir 1 , b 1 , b 2 sabittir yapabilirsiniz önceden katsayılar için sayısal değerleri hesaplar. Genel formüller DLMF'de bulunur:http://dlmf.nist.gov/16.11(Doğru dal kesimlerini seçmek için biraz dikkat gerektiğini unutmayın.)1F2a1,b1,b2

z

p=q+11/zp>q+1

Tam bir uygulama için dikkate alınması gereken başka konular da vardır (örneğin, aşırı büyük veya negatif tamsayılara çok yakın parametrelerle uğraşmak). Yeterince kötü parametreler için, ne yaparsanız yapın, çift hassasiyetle doğru değerler elde etmek çok zor olacaktır, bu nedenle keyfi hassasiyetli aritmetik gerekebilir.

Mpmath kütüphanesi için genelleştirilmiş hipergeometrik fonksiyonun neredeyse tam bir sayısal uygulamasını yazdığımı not etmeliyim (şu anda daha yüksek fonksiyonlar için asimptotik seriler eksik 2F3


Mükemmel! Ne yazık ki, parametre değerleri hakkında daha spesifik olamıyorum çünkü işlev birçok yerde çeşitli değerlerle ortaya çıkıyor. Bir noktada mpmath'de uygulamanızı kullanmak ve / veya bakmakla kesinlikle ilgileneceğim.
David Z

1
Fredrik'in cevabı doğrudur. Sadece "a" ve "b" katsayılarının özel değerleri için rasyonel bir yaklaşım (Mathematica'dan) kullanarak sonuçlandığımı göstereceğim, çünkü tüm gerçek "z" için doğrudur (gerçek ekseni aralıklara böldüm ve her birinde farklı bir rasyonel yaklaşım kullandık) ve çok hızlı. Fortran'daki çift duyarlıklı uygulamamın doğruluğunu kontrol etmek için mpmath kullandım.
Ondřej Čertík

2

Tüm özel fonksiyonlar için standart referans Abramowicz ve Stegun'dur. Bu kitap yaklaşık yarım yüzyıl civarında bir kitap ve içinde bulamayacağınız bir şey varsa, aslında Ulusal Standartlar Enstitüsü (NIST) tarafından düzenlenen bir web sitesi olan "güncellenmiş ikinci baskı" ya bir göz atın. ). Tam URL'ye sahip değilim ama bulmak çok zor olmamalı.


2
Şimdi "Matematiksel Fonksiyonların Dijital Kütüphanesi" olarak adlandırılmaktadır; hipergeometrik fonksiyonlar Bölüm 15'in konusudur .
Christian Clason

1
2F11F2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.