Finding Argument of Bessel Function (1st Kind) to Return Known Solution

4 visualizzazioni (ultimi 30 giorni)
I have an equation of the form 0.3005 = J0(2.405x/165) and want to find the value of x (between 0 and 160) that satisfies this equation. How would I go about coding this in Matlab? This is what I have so far.
syms r
ex = 5;
R = 160;
F = (2.405*r)/(R + ex);
Ratio = 0.3005;
q = F == Ratio;
vpasolve(besselj(0,F))
WolframAlpha returns r = 128.15 for this equation, but I can't seem to get this value from Matlab.

Risposta accettata

David Goodmanson
David Goodmanson il 26 Set 2021
Modificato: David Goodmanson il 26 Set 2021
Hello 1:5,
syms r
ex = 5;
R = 160;
F = besselj(0,(2.405*r)/(R + ex));
Ratio = 0.3005;
q = F == Ratio;
vpasolve(q,r,[0 200])
ans = 128.1492381636410113226607742437

Più risposte (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov il 26 Set 2021
If you set the solution range, then you will get a positive solution, e.g.:
...
Sol = vpasolve(besselj(0,F), r, [0, 165])

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by