Skip to content

HypergeometricU ​

Tricomi's confluent hypergeometric function U(a,b,z)U(a,b,z), for bb not an integer — see HypergeometricUStar for the zaz^a-regularized form Fungrim builds most of its identities from. Provided by @enumeratio/analytic.

✓ checked against that system · ! checked, with disagreements (hover a chip)FungrimHypergeometricU✓Fungrim entry6cf8029d3147✓c8fcc7✓Wolfram LanguageHypergeometricU!
HypergeometricU(a, b, z)Tricomi's confluent hypergeometric U(a,b,z)U(a,b,z).
Typed signatures
TypePackageApplies
(number, number, number) -> numberanalyticalways

Domain: Special functions

Details

Tricomi's function U(a,b,z)U(a,b,z) is the confluent hypergeometric equation's other standard solution, the one recessive as z→∞z \to \infty where Kummer's M(a,b,z)M(a,b,z) (1F1(a;b;z){}_1F_1(a;b;z)) grows. It specializes to elementary and other special functions at particular parameters — U(a,a+1,z)=z−aU(a,a+1,z) = z^{-a} (DLMF 13.6.4), and U(1,1,z)=ez Γ(0,z)=ezE1(z)U(1,1,z) = e^z\,\Gamma(0,z) = e^z E_1(z), the exponential integral (DLMF 13.6.6 at a=1a=1: U(a,a,z)=ez Γ(1−a,z)U(a,a,z) = e^z\,\Gamma(1-a,z); see Gamma).

  • compute-engine 0.128 references this head only inside its identity rules (relating it to HypergeometricUStar) but never actually declares it as an operator, so there was nothing to extend — it is declared directly here, reusing the same Kummer connection-formula kernel as HypergeometricUStar.
  • bb at (or very near) an integer is declined, for the same reason HypergeometricUStar declines there: the connection formula's Γ(1−b)\Gamma(1-b) and Γ(b−1)\Gamma(b-1) blow up, and the log-case limit that resolves it is not implemented. So is any point where the two terms of the formula cancel past a relative error of 10−1110^{-11} (a bb within about 10−310^{-3} of an integer, or a large zz): measured against mpmath on a grid of 546 real points, every answered point is within 5×10−125\times10^{-12}.
  • U(a,b,z)⋅zaU(a,b,z) \cdot z^a equals HypergeometricUStar(a,b,z) exactly (fungrim:c8fcc7), which is how this is cross-checked.

Examples

4 more kept as data, checked against the oracles
Basic #

a generic point, checked against mpmath's hyperu

live ↗
InHypergeometricU(1,2.5,3)\mathrm{HypergeometricU}(1, 2.5, 3)Out0.382 340 662 490 315 60.382\,340\,662\,490\,315\,6
Scope #

b=1.001b=1.001 sits beside the integer b=1b=1, where the connection formula's terms cancel: real, and good to about 11 digits (mpmath 0.7610286058670256)

live ↗
InN(HypergeometricU(13,1.001,2))N(\mathrm{HypergeometricU}(\frac{1}{3}, 1.001, 2))Out0.761 028 605 865 931 20.761\,028\,605\,865\,931\,2
Properties #
live ↗
InN(12(HypergeometricU(32,12,12))−HypergeometricU(12,12,12)+HypergeometricU(−12,12,12))N(\frac{1}{2}(\mathrm{HypergeometricU}(\frac{3}{2}, \frac{1}{2}, \frac{1}{2}))-\mathrm{HypergeometricU}(\frac{1}{2}, \frac{1}{2}, \frac{1}{2})+\mathrm{HypergeometricU}(-\frac{1}{2}, \frac{1}{2}, \frac{1}{2}))Out3.5⋅10−153.5\cdot10^{-15}

Known value · Wolfram MathematicalFunctionData, HypergeometricU, FunctionalEquations

live ↗
InN(12(HypergeometricU(1/2,3/2,1/2))−HypergeometricU(12,−12,12))N(\frac{1}{2}(\mathrm{HypergeometricU}(1/2, 3/2, 1/2))-\mathrm{HypergeometricU}(\frac{1}{2}, -\frac{1}{2}, \frac{1}{2}))Out6.5⋅10−166.5\cdot10^{-16}

Known value · Wolfram MathematicalFunctionData, HypergeometricU, FunctionalEquations

live ↗
InN(−12(5HypergeometricU(12,12,2))+12(HypergeometricU(32,12,2))+HypergeometricU(−12,12,2))N(-\frac{1}{2}(5\mathrm{HypergeometricU}(\frac{1}{2}, \frac{1}{2}, 2))+\frac{1}{2}(\mathrm{HypergeometricU}(\frac{3}{2}, \frac{1}{2}, 2))+\mathrm{HypergeometricU}(-\frac{1}{2}, \frac{1}{2}, 2))Out1.265⋅10−141.265\cdot10^{-14}

Known value · Wolfram MathematicalFunctionData, HypergeometricU, FunctionalEquations

live ↗
InN(2HypergeometricU(12,32,2)−12(3HypergeometricU(12,12,2))−HypergeometricU(12,−12,2))N(2\mathrm{HypergeometricU}(\frac{1}{2}, \frac{3}{2}, 2)-\frac{1}{2}(3\mathrm{HypergeometricU}(\frac{1}{2}, \frac{1}{2}, 2))-\mathrm{HypergeometricU}(\frac{1}{2}, -\frac{1}{2}, 2))Out4.645⋅10−144.645\cdot10^{-14}

Known value · Wolfram MathematicalFunctionData, HypergeometricU, FunctionalEquations

Possible issues #

integer bb stays symbolic — the connection formula's log-case limit is not implemented

live ↗
InHypergeometricU(1,2,3)\mathrm{HypergeometricU}(1, 2, 3)OutHypergeometricU(1,2,3)\mathrm{HypergeometricU}(1, 2, 3)

At b=1.00001b=1.00001 the cancellation would cost more than 11 digits, so the kernel declines rather than answer wrong

live ↗
InN(HypergeometricU(13,1.000 01,2))N(\mathrm{HypergeometricU}(\frac{1}{3}, 1.000\,01, 2))OutHypergeometricU(0.3‾,1.000 01,2)\mathrm{HypergeometricU}(0.\overline{3}, 1.000\,01, 2)
About
Examples12
Checked againstWolfram Language 10 agree2 differ
CrosswalkFungrimFungrim entry ×3Wolfram Language

Implementation

primitive · numericirreducibly numeric — it evaluates rather than rewrites

nativeenginetypescriptpackages/symbols/analysis/analytic/src/hypergeometric-ustar.ts
mappedexternalwolfram / mpmathpackages/oracle/src/mappings.ts

HypergeometricU[a,b,z]; mpmath.hyperu(a,b,z).

See also: HypergeometricUStar, Hypergeometric1F1Regularized