How to solve a zero order Bessel function equation in Matlab?

2k views Asked by At

The equation is I0(a*x)=b, where a,b are constants, and I0(y) is zero order bessel function.

I0(x)=1/(2*pi)*integral(x*cos(t)) dt [from 0 ->2*pi]

I want to get the value of x when a and b are given. I just want the result, so it's not necessary to implement the solving procedure all by Matlab, and an approximate answer is fine, too.

1

There are 1 answers

2
Kostya On BEST ANSWER

You can use (http://nl.mathworks.com/help/matlab/ref/besselj.html, http://nl.mathworks.com/help/optim/ug/fsolve.html)

x = fsolve(@(x)(besselj(0,a*x)-b),x0);

or using a simpler solver as pointed in the comment below (http://nl.mathworks.com/help/optim/ug/fzero.html)

x = fzero(@(x)(besselj(0,a*x)-b),x0);