3

在 MATLAB 中,你如何绘制

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

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

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

4

1 回答 1

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').

替代文字

替代文字

于 2010-05-05T02:30:38.037 回答