找到 Tricomi 合流超几何函数作为其参数函数的零点的稳健方法

计算科学 特殊功能 寻根
2021-11-26 07:42:00

我正在解决一个量子力学问题,而量化条件需要我解决方程

U(12(+1E),+1,r2)=0,
其中是第二类合流超几何函数,是一个固定的正实数,是一个固定的非负整数;我正在寻找能量参数,作为其他两个参数的函数。U(a,b,z)r>00E1,E2,E3,Er

到目前为止,我发现的最好的方法是使用零的渐近线DLMF (13.9.16)FindRoot作为 Mathematica函数的起点:

Block[{ℓ = 0, a},
 (*a=1/2 (1-e+ℓ);*)
 ListLinePlot[
   Table[
    Chop[
     Table[
      {r, (ℓ + 1 - 2 a)} /. FindRoot[
        HypergeometricU[a, 1 + ℓ, r^2]/Gamma[1 - a] == 0
        , {a, -n - 2/π r Sqrt[n] - (2 r^2)/π^2 + (ℓ + 1)/2 + 1/4}
        ]
      , {r, 0.01, 8, 0.2}]
     ]
    , {n, 1, 10}]
   , ImageSize -> 700
   , Frame -> True
   , GridLines -> All
   , FrameLabel -> {"Radius of inner boundary", "Energy eigenvalue"}
   ] /. {Line[pts_] -> {PointSize[0.01], Line[pts], Point[pts]}}
 ]

这里为方便起见,通常为负数,我添加了一个因子来抵消作为的函数的指数增长。这对于中等参数非常有效:a=(+1E)/21/Γ(1a)UE

这些是作为作为不同的行)En=0r08

但是,如果我使用非零 s(对于低中扩展为更大的框,则此方法开始出现问题:rr

数学图形


这让我想到了我的问题:有没有很好的标准方法来解决这个寻根问题?在它出现问题的情况下如何稳定它?

如果这些解决方案已经在 Mathematica 中实现,那就更好了!

1个回答

看起来特征值平滑地取决于您的参数。由于问题似乎很容易解决的小值,因此您可以计算一组半径的特征值,然后使用二次函数将这些特征值中的每一个外推到某个 . 求根问题的一个很好的开始猜测rrr1,r2,r3r>r3r