不用混编,直接用_jn。
网站设计、成都网站设计服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联建站把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
double _jn( int n, double x );
这是Help:
_j0, _j1, _jn
These routines return Bessel functions of the first kind: orders 0, 1, and n, respectively.
Example
#include math.h
#include stdio.h
int main( void )
{
double x = 2.387;
int n = 3, c;
printf( "Bessel functions for x = %f:\n", x );
printf( " Kind Order Function Result\n\n" );
printf( " First 0 _j0( x ) %f\n", _j0( x ) );
printf( " First 1 _j1( x ) %f\n", _j1( x ) );
for( c = 2; c 5; c++ )
printf( " First %d _jn( %d, x ) %f\n", c, c, _jn( c, x ) );
printf( " Second 0 _y0( x ) %f\n", _y0( x ) );
printf( " Second 1 _y1( x ) %f\n", _y1( x ) );
for( c = 2; c 5; c++ )
printf( " Second %d _yn( %d, x ) %f\n", c, c, _yn( c, x ) );
}
语法不对,不能用x作为索引号
x=0:0.2:10;
y00=(besselj(-1,x(:))-besselj(1,3*x(:)))/2;
y11=(bessely(-1,x(:))-bessely(1,3*x(:)))/2;
y01=(besselj(-1,x(:))-besselj(1,3*x(:)))/2;
y10=(besselj(-1,x(:))-besselj(1,3*x(:)))/2;
y=y00(:).*y11(:)-y01(:).*y10(:);
plot(x,y)
MATLAB提供了计算贝塞尔函数的函数,具体包括:
besselj - 第一类贝塞尔函数,或简称贝塞尔函数;
bessely - 第二类贝塞尔函数,又称诺伊曼函数(Neumann function);
besseli - 第一类修正贝塞尔函数;
besselk - 第二类修正贝塞尔函数;
besselh - 第三类贝塞尔函数,又称汉克尔函数(Hankel function).
这几个函数的调用语法基本相同,例如
J = besselj(nu,Z)
J = besselj(nu,Z,1)
[J,ierr] = besselj(nu,Z)
其中,nu为贝塞尔函数的阶数,Z为函数自变量.阶数必须为实数,但Z可以是复数.
值得一提的是,上述函数是MATLAB基本模块(也就是说不需要任何附加的工具箱)提供的特殊函数,采用数值方法计算;而符号数学工具箱则提供了第一和第二类的4个贝塞尔函数,名称和调用方式都与MATLAB基本系统的4个函数完全一致,但支持微分、积分等符号运算.