在 MATLAB 中如何绘图
f(r) = { 2*J1(a*r)/r }^2
其中 a = 2*pi J1 是第一类贝塞尔函数 和 r = sqrt(x^2 + y^2)
这应该以 3D 形式绘制,即有点像气泡(不知道该怎么做)
最佳答案
使用besselj --- 第一类贝塞尔函数 --- 生成J1
。我想您必须改变 a
和 r
才能生成“气泡”。
我通过从 -1:0.01:1
改变 x
和 y
并绘制网格点 (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')
。
网格
关于math - 在 MATLAB 中绘制贝塞尔函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770155/