Clear["Global`*"]
eqn[t_] = x BesselJ[1, x] == t BesselJ[0, x];
As suggested by user64494, for a given t
, constrain x
to an interval. However, use Solve
Solve[{eqn[0], -15 < x < 15}, x] // N // Quiet
(* {{x -> 0.}, {x ->
0.}, {x -> -13.3237}, {x -> -10.1735}, {x -> -7.01559}, {x -> -3.83171}, \
{x -> 3.83171}, {x -> 7.01559}, {x -> 10.1735}, {x -> 13.3237}} *)
Note that NSolve
may miss a solution
NSolve[{eqn[0], -15 < x < 15}, x]
(* {{x -> -13.3237}, {x -> -10.1735}, {x -> -7.01559}, {x -> -3.83171}, {x ->
3.83171}, {x -> 7.01559}, {x -> 10.1735}, {x -> 13.3237}} *)
Use ContourPlot
to see the solutions
cp = ContourPlot[Evaluate@eqn[t],
{x, -15, 15}, {t, -5, 5},
FrameLabel -> (Style[#, 12, Bold] & /@ {x, t})];
Manipulate[
t = Rationalize[tt, 0];
sol = x /. Solve[{eqn[t], -15 < x < 15}, x] // Quiet;
Show[cp,
Graphics[{Red, AbsolutePointSize[4],
Tooltip[Point[{#, tt}], N@#] & /@ sol}],
ImageSize -> Medium],
{{tt, 0, "t"}, -5, 5, 0.1, Appearance -> "Labeled"},
SynchronousUpdating -> False]