在MATLAB中如何绘制
f(r)= {2 * J1(a * r)/ r} ^ 2
其中a = 2 * pi 和J1是第一类贝塞尔函数 并且r = sqrt(x ^ 2 + y ^ 2)
这应该用3D绘制,即有点像泡泡(不知道该怎么做)
答案 0 :(得分:10)
使用besselj ---第一种贝塞尔函数---生成J1
。我想你必须改变a
和r
以产生“泡沫”。
我通过改变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')
。