I'm having trouble solving the transcendental equation. For some values of bi, NSolve obtains 6 roots, however when changing the value, it obtains 5. Graphing the function clearly shows that the root that is missing exists and is in the interval between 10 and 11.
This is the code running all the roots correctly
bi=0.515625;
g[β_]:=(β*BesselJ[1, β])-(bi*BesselJ[0,β]);
roots=(β/.NSolve[{g[β]==0,0<=β<=18},β])
Plot[g[β], {β, 0, 18}, PlotRange -> {-5, 5},
Epilog -> {Red, AbsolutePointSize[6], Point[{#, 0} & /@ roots]}]
And this is the same code with another bi value
bi=1.27188;
g[β_]:=(β*BesselJ[1, β])-(bi*BesselJ[0,β]);
roots=(β/.NSolve[{g[β]==0,0<=β<=18},β])
Plot[g[β], {β, 0, 18}, PlotRange -> {-5, 5},
Epilog -> {Red, AbsolutePointSize[6], Point[{#, 0} & /@ roots]}]
Solve[...] //N
instead. $\endgroup$