#include "stdio.h"

#include "math.h"

/************************************************************

第一类贝塞尔函数:贝塞尔函数

*************************************************************/

double Bessel(int n,double x)

{

int i,m;

double t,y,z,p,q,s,b0,b1;

static double a[6]={ 57568490574.0,-13362590354.0,

651619640.7,-11214424.18,77392.33017,

-184.9052456};

static double b[6]={ 57568490411.0,1029532985.0,

9494680.718,59272.64853,267.8532712,1.0};

static double c[6]={ 72362614232.0,-7895059235.0,

242396853.1,-2972611.439,15704.4826,

-30.16036606};

static double d[6]={ 144725228443.0,2300535178.0,

18583304.74,99447.43394,376.9991397,1.0};

static double e[5]={ 1.0,-0.1098628627e-02,

0.2734510407e-04,-0.2073370639e-05,

0.2093887211e-06};

static double f[5]={ -0.1562499995e-01,

0.1430488765e-03,-0.6911147651e-05,

0.7621095161e-06,-0.934935152e-07};

static double g[5]={ 1.0,0.183105e-02,

-0.3516396496e-04,0.2457520174e-05,

-0.240337019e-06};

static double h[5]={ 0.4687499995e-01,

-0.2002690873e-03,0.8449199096e-05,

-0.88228987e-06,0.105787412e-06};

t=fabs(x);

if (n<0) n=-n;

if (n!=1)

{

if (t<8.0)

{

y=t*t; p=a[5]; q=b[5];

for (i=4; i>=0; i--)

{

p=p*y+a[i]; q=q*y+b[i];

}

p=p/q;

}

else

{

z=8.0/t; y=z*z;

p=e[4]; q=f[4];

for (i=3; i>=0; i--)

{

p=p*y+e[i]; q=q*y+f[i];

}

s=t-0.785398164;

p=p*cos(s)-z*q*sin(s);

p=p*sqrt(0.636619772/t);

}

}

if (n==0) return(p);

b0=p;

if (t<8.0)

{

y=t*t; p=c[5]; q=d[5];

for (i=4; i>=0; i--)

{ p=p*y+c[i]; q=q*y+d[i];}

p=x*p/q;

}

else

{

z=8.0/t; y=z*z;

p=g[4]; q=h[4];

for (i=3; i>=0; i--)

{

p=p*y+g[i]; q=q*y+h[i];

}

s=t-2.356194491;

p=p*cos(s)-z*q*sin(s);

p=p*x*sqrt(0.636619772/t)/t;

}

if (n==1) return(p);

b1=p;

if (x==0.0) return(0.0);

s=2.0/t;

if (t>1.0*n)

{

if (x<0.0) b1=-b1;

for (i=1; i<=n-1; i++)

{ p=s*i*b1-b0; b0=b1; b1=p;}

}

else

{

m=(n+(int)sqrt(40.0*n))/2;

m=2*m;

p=0.0; q=0.0; b0=1.0; b1=0.0;

for (i=m-1; i>=0; i--)

{

t=s*(i+1)*b0-b1;

b1=b0; b0=t;

if (fabs(b0)>1.0e+10)

{

b0=b0*1.0e-10; b1=b1*1.0e-10;

p=p*1.0e-10; q=q*1.0e-10;

}

if ((i+2)%2==0) q=q+b0;

if ((i+1)==n) p=b1;

}

q=2.0*q-b0; p=p/q;

}

if ((x<0.0)&&(n%2==1)) p=-p;

return(p);

}

/*************************************************************

第二类贝塞尔函数:诺伊曼函数

*************************************************************/

double Neumann(int n,double x)

{

int i;

double y,z,p,q,s,b0,b1;

static double a[6]={ -2.957821389e+9,7.062834065e+9,

-5.123598036e+8,1.087988129e+7,-8.632792757e+4,

2.284622733e+2};

static double b[6]={ 4.0076544269e+10,7.452499648e+8,

7.189466438e+6,4.74472647e+4,2.261030244e+2,1.0};

static double c[6]={ -4.900604943e+12,1.27527439e+12,

-5.153438139e+10,7.349264551e+8,-4.237922726e+6,

8.511937935e+3};

static double d[7]={ 2.49958057e+13,4.244419664e+11,

3.733650367e+9,2.245904002e+7,1.02042605e+5,

3.549632885e+2,1.0};

static double e[5]={ 1.0,-0.1098628627e-02,

0.2734510407e-04,-0.2073370639e-05,

0.2093887211e-06};

static double f[5]={ -0.1562499995e-01,

0.1430488765e-03,-0.6911147651e-05,

0.7621095161e-06,-0.934935152e-07};

static double g[5]={ 1.0,0.183105e-02,

-0.3516396496e-04,0.2457520174e-05,

-0.240337019e-06};

static double h[5]={ 0.4687499995e-01,

-0.2002690873e-03,0.8449199096e-05,

-0.88228987e-06,0.105787412e-06};

if (n<0) n=-n;

if (x<0.0) x=-x;

if (x==0.0) return(-1.0e+70);

if (n!=1)

{

if (x<8.0)

{

y=x*x; p=a[5]; q=b[5];

for (i=4; i>=0; i--)

{ p=p*y+a[i]; q=q*y+b[i];}

p=p/q+0.636619772*Bessel(0,x)*log(x);

}

else

{

z=8.0/x; y=z*z;

p=e[4]; q=f[4];

for (i=3; i>=0; i--)

{ p=p*y+e[i]; q=q*y+f[i];}

s=x-0.785398164;

p=p*sin(s)+z*q*cos(s);

p=p*sqrt(0.636619772/x);

}

}

if (n==0) return(p);

b0=p;

if (x<8.0)

{

y=x*x; p=c[5]; q=d[6];

for (i=4; i>=0; i--)

{ p=p*y+c[i]; q=q*y+d[i+1];}

q=q*y+d[0];

p=x*p/q+0.636619772*(Bessel(1,x)*log(x)-1.0/x);;

}

else

{

z=8.0/x; y=z*z;

p=g[4]; q=h[4];

for (i=3; i>=0; i--)

{ p=p*y+g[i]; q=q*y+h[i];}

s=x-2.356194491;

p=p*sin(s)+z*q*cos(s);

p=p*sqrt(0.636619772/x);

}

if (n==1) return(p);

b1=p;

s=2.0/x;

for (i=1; i<=n-1; i++)

{

p=s*i*b1-b0; b0=b1; b1=p;

}

return(p);

}

main()

{

int n;

double x;

double y0,y1,y2;

FILE * fp = fopen("D://data.txt","w");

fprintf(fp,"x Neumann(0) Neumann(1) Neumann(2)/n");

n = 2 ;

for (x=0.5;x<20;x+=0.02)

{

y0 = Neumann(0,x);

y1 = Neumann(1,x);

y2 = Neumann(2,x);

fprintf(fp,"%6.3f %6.3f %6.3f %6.3f/n",x,y0,y1,y2);

}

fprintf(fp,"/n");

fclose(fp);

}

整数阶贝塞尔函数c语言,第二类整数阶贝塞尔函数(诺伊曼函数)相关推荐

  1. python 贝塞尔函数_第二类整数阶贝塞尔函数(诺伊曼函数) | 学步园

    #include "stdio.h" #include "math.h" /****************************************** ...

  2. 怎么用c语言表示大整数的四则运算,用c语言编写大整数的四则运算,求大神

    用c语言编写大整数的四则运算,求大神 答案:3  信息版本:手机版 解决时间 2019-10-03 17:13 已解决 2019-10-03 01:32 用c语言编写大整数的四则运算,求大神 最佳答案 ...

  3. c语言getchar函数_C语言中带有示例的getchar()函数

    c语言getchar函数 C语言中的getchar()函数 (getchar() function in C) The getchar() function is defined in the < ...

  4. python函数分为哪几类_Python 69个内置函数分8类总结

    1.内置函数 Python3解释器中内置了69个常用函数,属于底层的函数,它们到处可用.有些对大家来说比较熟悉,比如abs(), max(), sum()... 也有一些比较陌生,比如locals() ...

  5. c语言 信号函数,C语言中进程信号集的相关操作函数详解

    C语言sigismember()函数:测试某个信号是否已加入至信号头文件:#include 定义函数:int sigismember(const sigset_t *set, int signum); ...

  6. c语言字符串字节数函数,C语言字符,字符串,字节操作常用函数

    strlen 这个函数是在 string.h 的头文件中定义的 它的函数原型是 size_t strlen( const char ); size_t 是一个无符号整型,是这样定义的 typedef ...

  7. 整数划分问题的递归算法-c语言,简单的整数划分问题(递归)

    描述 将正整数n 表示成一系列正整数之和,n=n1+n2+-+nk, 其中n1>=n2>=->=nk>=1 ,k>=1 . 正整数n 的这种表示称为正整数n 的划分.正整 ...

  8. C语言自定义s函数,C语言strcpy_s 和strncpy_s的用法,以及函数实现的方法

    //strcpy_s 和strncpy_s的用法,以及函数实现的方法 #include#include#include//用strcpy_s的方法将str2的内容存入str3 //int main() ...

  9. matlab 0阶贝塞尔函数,零阶贝塞尔函数 分享助,第一类零阶贝塞尔

    分享助,第一类零阶贝塞尔函数积分和sinc函数之间有也就是下面的这个等式怎么得出来的. 第二类修正贝塞尔函数的零阶和一阶,分别怎样用mat 书上说 (0和1都是下标) K0(z), the zerot ...

最新文章

  1. 标注图+部分举例聊聊Vue生命周期
  2. 「周末观赛指南」澳网新王当立?勇士冲击十连胜
  3. 框架源码系列四:手写Spring-配置(为什么要提供配置的方法、选择什么样的配置方式、配置方式的工作过程是怎样的、分步骤一个一个的去分析和设计)...
  4. WPF 基础控件之Window样式
  5. 【Maven】Maven classifier的作用
  6. 机械考计算机三级,机器人等级考试三级知识点汇总-20210706222922.pdf-原创力文档...
  7. ConnectionRead (WrapperRead())Timeout expired
  8. cc2640r2f i2c接口_TI最新CC2640R2L与CC2640R2F区别详解
  9. Windows 技术篇-通过注册表查找vc运行库所在位置实战演示,通过ProductCode查看vc++运行库安装位置
  10. 监听imput框的内容变化
  11. 多角度了解ABeam(德硕)技术架构
  12. Python 基于BP神经网络的鸢尾花分类
  13. Canonical通过Flutter启用Linux桌面应用程序支持
  14. 前后台订单入库调用流程
  15. 牛客网在线编程专题《剑指offer-面试题15》链表中倒数第k个节点
  16. 服务器虚拟化课程总结,虚拟化与云计算课程总结报告
  17. 怎样消除公司的信息孤岛
  18. Linux使用笔记:Oracle数据库安装配置(命令行安装)
  19. 绝地求生钓鱼网站源代码发布开源
  20. 电视图像信号的发送和接收

热门文章

  1. R语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性
  2. R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析详解实战:拟合连续性自变量和事件风险之间的关系:基于survival包lung数据
  3. R语言广义线性模型Logistic回归模型C Statistics计算
  4. 机器学习数据整合+pandas方法astype、merge、drop、to_numeric、concat等
  5. 差异表达基因火山图(ggplot函数)
  6. java 必须存在默认构造器_Java默认构造方法在字节码的实现
  7. 原核生物基因组三代数据(pacbio/nanopore)组装
  8. jsp java 登陆_jsp+java servlet实现简单用户登录
  9. android 获取网卡mac_防亚马逊账号关联黑科技--如何修改我们的网卡MAC到底重要不?...
  10. python numpy 欧氏距离