在MATLAB中绘制贝塞尔函数

时间:2010-05-05 01:58:23

标签: math matlab bessel-functions

在MATLAB中如何绘制

f(r)= {2 * J1(a * r)/ r} ^ 2

其中a = 2 * pi 和J1是第一类贝塞尔函数 并且r = sqrt(x ^ 2 + y ^ 2)

这应该用3D绘制,即有点像泡泡(不知道该怎么做)

1 个答案:

答案 0 :(得分:10)

使用besselj ---第一种贝塞尔函数---生成J1。我想你必须改变ar以产生“泡沫”。

我通过改变x中的y-1:0.01:1以及绘制网格点(x,y,f)来生成以下内容,我不知道这是否是您想要的。

代码

a = 2*pi;
[X Y] = meshgrid(-1:0.01:1,-1:0.01:1);
R = sqrt(X.^2+Y.^2);
f = (2*besselj(1,a*R(:))./R(:)).^2;
mesh(X,Y,reshape(f,size(X)));
axis vis3d;

记录图

Doresdoom建议,我将axis vis3d;替换为set(gca,'Zscale','Log')

alt text

alt text