Matlab 绘制贝塞尔函数

Matlab 绘制贝塞尔函数,matlab,plot,bessel-functions,Matlab,Plot,Bessel Functions,如何在Matlab中绘制第一类贝塞尔函数(2d)?这有两部分: 如何在给定的范围内评估一个问题 如果您指的是2d绘图,您可以选择一些\n菜单和覆盖,使用,例如 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(

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

这有两部分:

  • 如何在给定的范围内评估一个问题

  • 如果您指的是2d绘图,您可以选择一些\n菜单和覆盖,使用,例如

    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')))
    
    其中:

    如果您指的是两个变量函数的绘图,这里有一种方法(如果需要,您可以将
    mesh
    替换为
    surf
    ):

    以下是结果图:


    我很确定他说的“2D”是指y=f(x)类型的图。我会把你的第一个图形,形式为z=f(x,y),“3D”。@Andreas:我想可能是这样的,我看到了duffymo的想法(通过参考
    绘图
    )。但我猜OP的“(2d)”不需要陈述,让我觉得他是指两个变量的函数。有了1个代表,我们可能再也看不到OP了。当然,
    surf
    是两个变量函数的3D图。我改变了答案的重点(并重新调整以避免2D绘图的for循环)。
    [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)')