2012-02-18 124 views
1

我想绘制一个函数的根,该函数由多个贝赛尔函数在Matlab中添加和相乘组成。方程为:其中Jm是第一类阶m(besselj)的贝塞尔函数。 Im是第一类m(besseli)的改进的bessel函数。对于每种模式m = 0,1,2,...和n = 1,2,3 ...频率ω(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

尝试使用http://www.mathworks.com/matlabcentral/fileexchange/6794 – Cheery 2012-02-18 06:35:32

回答

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

寻找根源数值

您可以实现Halley's method您的功能g,类似于如何besselj的根在MatlabCentral file linked by Cheery被确定。