在MATLAB中绘制贝塞尔函数

4al*_*ala 3 math matlab bessel-functions

在MATLAB中你如何绘制

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

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

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

Jac*_*cob 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;
Run Code Online (Sandbox Code Playgroud)

记录图

Doresdoom建议,我换成axis vis3d;set(gca,'Zscale','Log').

替代文字

啮合

替代文字

  • @Jacob - 我上次检查时,MATLAB没有自行运行.仍然需要一个聪明,有动力的人来告诉它该做什么. (2认同)