绘制并找到bessel函数的根

时间:2012-02-18 06:30:29

标签: matlab bessel-functions

我试图绘制一个函数的根,该函数由在Matlab中添加和乘法的多个bessel函数组成。等式是Jm(ω)* Ik(ω)+ Im(ω)* Jk(ω)其中Jm是第一类m(besselj)的bessel函数。 Im是第一种m阶(besseli)的修改bessel函数。对于每个模式m = o,1,2,...和n = 1,2,3 ......频率omega(mn)是所列方程的对应根。 m = 0,1,2 n-1,2,3,4。我需要解决12个根的等式。我是Matlab的新手,这有点超出了我的联盟。到目前为止,我有这个代码,但我不确定我是否需要脚本中的变量omega。我也看了其他人对这个问题的看法,但没有看到这样的问题。我看到的情节看起来与我的情况完全不同,它告诉我,我可能错了。谢谢你的帮助。

m=(0:2); k=(1:3); n=(1:4);
Jm=besselj(m,n');
Ik=besseli(k,n');
Jk=besselj(k,n');
Im=besseli(m,n');
g=Jm.*Ik+Im.*Jk
plot(g)

1 个答案:

答案 0 :(得分:0)

<强>绘图

besseljbesseli将您所谓的omega作为第二个参数,因此要绘制您的函数,您应该尝试类似

的内容
m=0; k=1; omega=0:0.02:10;
Jm=besselj(m,omega);
Ik=besseli(k,omega);
Jk=besselj(k,omega);
Im=besseli(m,omega);
g=Jm.*Ik+Im.*Jk;
plot(omega,g);
hold all;
plot(omega,0,'k');
axis([min(omega) max(omega) -100 100]);

这表明对于m=1, k=1,第一个零点大约是3.2,6.3和9.4:

screenshot matlab figure

以数字方式查找根

您可以为您的函数g实施Halley's method,类似于MatlabCentral file linked by Cheerybesselj的根的确定。