如何在Matlab中求解零阶贝塞尔函数方程?

如何在Matlab中求解零阶贝塞尔函数方程?,matlab,equation-solving,bessel-functions,Matlab,Equation Solving,Bessel Functions,方程为I0(a*x)=b,其中a,b为常数,I0(y)为零阶贝塞尔函数 I0(x)=1/(2*pi)*积分(x*cos(t))dt[从0->2*pi] 当a和b给定时,我想得到x的值。我只想要结果,所以不需要全部用Matlab实现求解过程,近似答案也很好。您可以使用(,) 或者使用更简单的解算器,如下面的注释() 使用fsolve查找单变量根有什么原因吗fzero就足够了,效率更高,而且在某些情况下更健壮。另外,就解释和格式而言,这是一个质量相当差的答案。只是在我的头顶上键入了一些东西:)。Tn

方程为I0(a*x)=b,其中a,b为常数,I0(y)为零阶贝塞尔函数

I0(x)=1/(2*pi)*积分(x*cos(t))dt[从0->2*pi]

当a和b给定时,我想得到x的值。我只想要结果,所以不需要全部用Matlab实现求解过程,近似答案也很好。

您可以使用(,)

或者使用更简单的解算器,如下面的注释()


使用
fsolve
查找单变量根有什么原因吗
fzero
就足够了,效率更高,而且在某些情况下更健壮。另外,就解释和格式而言,这是一个质量相当差的答案。只是在我的头顶上键入了一些东西:)。Tnx,答案更新
x = fsolve(@(x)(besselj(0,a*x)-b),x0);
x = fzero(@(x)(besselj(0,a*x)-b),x0);