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.zeinich, 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.)1F2ein1, 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+ 11 / zp > 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 über 2F3