我正在解决一个量子力学问题,而量化条件需要我解决方程
其中是第二类合流超几何函数,是一个固定的正实数,是一个固定的非负整数;我正在寻找能量参数,作为其他两个参数和的函数。
到目前为止,我发现的最好的方法是使用零的渐近线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]}}
]
这里为方便起见,通常为负数,我添加了一个因子来抵消作为的函数的指数增长。这对于中等参数非常有效:
这些是作为在和作为不同的行)。
但是,如果我使用非零 s(对于低中扩展为更大的框,则此方法开始出现问题:
这让我想到了我的问题:有没有很好的标准方法来解决这个寻根问题?在它出现问题的情况下如何稳定它?
如果这些解决方案已经在 Mathematica 中实现,那就更好了!