I can see two possible improvements. As expected with a subject like this, considering these improvements require knowing a little something about the properties of the Kummer confluent hypergeometric function. Thankfully, such knowledge is easily available these days, at sites like the DLMF.
Here they are:
- One can use the Kummer transformation
$${}_1 F_1\left({{a}\atop{b}}\mid z\right)=\exp(z)\;{}_1 F_1\left({{b-a}\atop{b}}\mid -z\right)$$
to factor out exponential behavior in β (which only makes the task of finding zeroes on the real axis more difficult). That is,
Hypergeometric1F1[(2 - λ/β)/4, n + 1, β] is the same as
Exp[β] Hypergeometric1F1[n + 1 - (2 - λ/β)/4, n + 1, -β] and one can remove the Exp[β] factor for root-finding purposes.
Thus, one can write a scaled version of the function whose roots are being sought, like so:
eqScaled[n_, β_, λ_] := Hypergeometric1F1[n + 1 - (2 - λ/β)/4, n + 1, -β] Using the asymptotic behavior of Kummer's function for large values of the upper parameter, one can easily develop a better starting approximation for
FindRoot[]to polish:ED[n_, β_, k_Integer:1] := Block[{λ}, λ /. FindRoot[eqScaled[n, β, λ] == 0, {λ, BesselJZero[n, k]^2 - 2 n β}]]
k is an index for the roots, e.g. k = 1 for the first root.
We can now try Vitaliy's example:
roots = Table[ED[1, 1, k], {k, 10}] {13.0143, 47.552, 101.833, 175.854, 269.615, 383.115, 516.355, 669.334, 842.052, 1034.51} Plot[eqScaled[1, 1, λ], {λ, 0, 1310}, Epilog -> {AbsolutePointSize[4], Red, Point[{#, 0}] & /@ roots}] 