Ich bin neugierig zu wissen, welche guten numerischen Algorithmen für die Auswertung der generalisierten hypergeometrischen Funktion (oder Reihe) existieren, definiert als
Im Allgemeinen wird diese Reihe nicht unbedingt sehr schnell (oder überhaupt) konvergieren, sodass es nicht ideal erscheint, die Begriffe einzeln zusammenzufassen. Gibt es eine alternative Methode, die besser funktioniert? Um genau zu sein, suche ich etwas, das 4 oder 5 Stellen Genauigkeit mit einer angemessenen Anzahl von Berechnungen ergibt.
Die häufigsten Fälle, die ich normalerweise verwende, sind und , aber in dem speziellen Projekt, an dem ich arbeite, brauche ich . Offensichtlich ist ein allgemeiner Algorithmus für jedes und ideal, aber ich nehme, was ich bekommen kann.
quelle
Antworten:
In einer einzelnen Anwendung ist es ziemlich wahrscheinlich, dass Sie nur eine kleine Teilmenge aller möglichen Extreme der generalisierten hypergeometrischen Funktion benötigen. Immerhin ist es eine sehr allgemeine Funktion. Wenn Sie eine Vorstellung vom Bereich von und den Parametern a i , b i haben , können Sie spezifischere Ratschläge geben.z einich, bich
Im Allgemeinen besteht die Standardmethode unter der Annahme von natürlich darin, die definierende Potenzreihe zu verwenden, wenn | z | ist klein. Wenn p < q + 1 ist , ist es am besten, auf eine asymptotische Expansion umzuschalten, wenn | z | ist groß, entweder weil die Taylor-Reihe zu langsam konvergiert und / oder weil sie aufgrund einer katastrophalen Auslöschung zu ungenau wird. Die beste Grenze zwischen diesen Algorithmen hängt von den Parametern und den Genauigkeitsanforderungen ab.p ≤ q+ 1 | z| p < q+ 1 | z|
Zum Die asymptotische Reihe wird vonhttp://functions.wolfram.com/HypergeometricFunctions/Hypergeometric1F2/06/02/03/ gegeben.Es sieht ziemlich schrecklich aus, aber wenn Ihre a 1 , b 1 , b 2 sind, können Sie Berechnen Sie im Voraus die numerischen Werte für die Koeffizienten. Allgemeine Formeln finden Sie im DLMF:http://dlmf.nist.gov/16.11(Beachten Sie, dass die Auswahl der richtigen Verzweigungsschnitte einige Sorgfalt erfordert.)1F2 ein1, b1, b2
Wenn es einen Bereich gibt, in dem weder die Taylor-Reihe noch die asymptotische Reihe gut genug funktionieren, könnten "exponentiell verbesserte Erweiterungen" nützlich sein. Eine weitere erwähnenswerte Möglichkeit besteht darin, dass Sie die hypergeometrische Differentialgleichung einfach in einen universellen ODE-Löser einfügen können. Dies sollte ganz gut funktionieren, insbesondere wenn Sie nur 4-5 Ziffern benötigen. Dies kann verwendet werden, um eine analytische Fortsetzung von einem kleinen (bei dem die Potenzreihe gut funktioniert) zu einem größeren zu machen, oder umgekehrt zu einem Wert, der über eine asymptotische Reihe erhalten wurde (möglicherweise müssen Sie etwas mehr Arbeit leisten, um alle zu erhalten) als Ausgangswerte benötigte Derivate).z
Wenn Sie Funktionen mit auf der gesamten komplexen Ebene benötigen, können 1 / z- Transformationsformeln verwendet werden, um das Äußere der Einheitsscheibe auf das Innere abzubilden. In der Nähe des Einheitskreises muss ein Konvergenzbeschleunigungsalgorithmus oder eine andere Methode wie die numerische Integration der ODE verwendet werden. Wenn p > q + 1 ist, ist der Radius Konvergenz gleich Null. Wenn also die zu bewertende Funktion durch eine solche abweichende Reihe gegeben ist, müssen Sie möglicherweise eine Borel-Transformation (numerisch oder symbolisch) anwenden, um sie auf eine konvergente Reihe zu reduzieren.p = q+ 1 1 / z p > q+ 1
Für eine vollständige Implementierung müssen auch andere Aspekte berücksichtigt werden (z. B. der Umgang mit Parametern, die extrem groß sind oder sehr nahe an negativen Ganzzahlen liegen). Bei ausreichend schlechten Parametern ist es sehr schwierig, genaue Werte mit doppelter Genauigkeit zu erhalten, unabhängig davon, was Sie tun. Daher ist möglicherweise eine Arithmetik mit willkürlicher Genauigkeit erforderlich.
Ich sollte beachten, dass ich eine fast vollständige numerische Implementierung der verallgemeinerten hypergeometrischen Funktion für die mpmath - Bibliothek geschrieben habe (es fehlen derzeit asymptotische Reihen für Funktionen über2F3
quelle
Die kanonische Referenz für alle Sonderfunktionen ist Abramowicz und Stegun. Dies ist ein Buch, das es schon seit ungefähr einem halben Jahrhundert gibt. Wenn Sie etwas nicht finden können, schauen Sie sich die "aktualisierte zweite Ausgabe" an, eine Website, die vom National Institute of Standards (NIST) organisiert wird ). Ich habe nicht die genaue URL, aber es sollte nicht sehr schwer zu finden sein.
quelle