math - 在 MATLAB 中绘制贝塞尔函数

标签 math matlab bessel-functions

在 MATLAB 中如何绘图

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

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

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

最佳答案

使用besselj --- 第一类贝塞尔函数 --- 生成J1。我想您必须改变 ar 才能生成“气泡”。

我通过从 -1:0.01:1 改变 xy 并绘制网格点 (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')

alt text

网格

alt text

关于math - 在 MATLAB 中绘制贝塞尔函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770155/

相关文章:

math - 在 Three.js 中根据对象的旋转来移动对象

matlab - Matlab中方括号和大括号之间的区别?

matlab - 使用uigetfile时如何捕捉错误? [MATLAB]

python - Scipy - 使用球面贝塞尔函数时出错

c++ - c++ 中 "Matlab besselk(x,y,1)"的确切等价物是什么?

algorithm - 使用加、减和减半计算三角根

java - 如何在 Java 中获取 Double 的最大最安全整数

javascript - 在 Canvas 上绘制 X 的正弦 Y

c++ - 如果瓶颈是大矩阵乘法,我能否使用 MEX 文件加速我的 MATLAB 代码?

python - Python 中的开尔文函数 KelvinBer[n,z]