Math 在MATLAB中绘制贝塞尔函数

Math 在MATLAB中绘制贝塞尔函数,math,matlab,bessel-functions,Math,Matlab,Bessel Functions,在MATLAB中,如何绘制 f(r)={2*J1(a*r)/r}^2 其中a=2*pi J1是第一类贝塞尔函数 r=sqrt(x^2+y^2) 这应该以3D绘制,即有点像一个气泡(不知道怎么做)使用第一种贝塞尔函数生成J1。我想你必须改变a和r来产生“气泡” 我通过从-1:0.01:1改变x和y并绘制网格点(x,y,f)生成了以下内容,我不知道这是否是您想要的 代码 对数图 Doresdoom建议,我替换了axis vis3d与设置(gca,'Zscale','Log') 网格 使用set(g

在MATLAB中,如何绘制

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

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

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

使用第一种贝塞尔函数生成
J1
。我想你必须改变
a
r
来产生“气泡”

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

代码 对数图 Doresdoom建议,我替换了axis vis3d
设置(gca,'Zscale','Log')

网格

使用
set(gca,'Zscale','Log')
而不是
axis vis3d
来获得“气泡”效果+1-这真是个好工作。值得为等高线图的质量投上一票。@duffymo:是的,它们很漂亮,但这都要感谢MATLAB:)@Jacob-上次我检查时,MATLAB没有自动运行。仍然需要一个聪明、积极的人来告诉它该做什么。谢谢。有没有办法使底部的小振荡更加明显?当我这样做的时候,它看起来基本上是平面的。此外,如何使图形看起来不同,例如,将其打印为均匀的绿色或其他颜色,或者仅显示网格线?
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;