绘制贝塞尔函数

问题描述:

如何在Matlab中绘制第一类Bessel函数(2d)?绘制贝塞尔函数

两个部分是:

  1. How to plot functions in MATLAB?
  2. 如何评价Bessel function在给定的范围是多少?

如果你的意思是一个二维图,你可以选择几个\ nu和覆盖,使用,例如,

nu=0:0.5:3; 
[nuGrid,z]=meshgrid(nu,linspace(0,10,100)); 
myBessel=besselj(nuGrid,z); 
plot(z,myBessel) 
xlabel('\nu') 
ylabel('z') 
zlabel('J_\nu(z)') 
legend(cellstr(num2str(nu'))) 

这给:

alt text http://www.freeimagehosting.net/uploads/1d2541cb9a.jpg

如果你的意思是两个变量的函数的曲线图,这里是一个办法(你可以用surf取代mesh如果你想):

[nu,z]=meshgrid(linspace(0,5,100),linspace(0,10,100)); 
myBessel=besselj(nu,z); 
mesh(nu,z,myBessel) 
xlabel('\nu') 
ylabel('z') 
zlabel('J_\nu(z)') 

这是得到的图:

alt text http://www.freeimagehosting.net/uploads/1366eeda86.jpg

+0

我很肯定他说的是当他说“2D”时,他指的是类型为y = f(x)的图。我会打电话给你的第一个图形,形式为z = f(x,y),“3D”。 – 2010-05-01 11:48:36

+0

@Andreas:我认为可能是这样,我看到这是duffymo想法(通过参考'plot')。但我猜想OP的“(2d)”不需要陈述,并且让我认为他的意思是它是2个变量的函数。有1名代表,很可能永远不会再看到OP了解。当然,“冲浪”是一个2变量函数的3D图。我已经改变了我的答案的重点(并且需要避免2D图的for循环)。 – Ramashalanka 2010-05-01 21:26:49