⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 padeps.c

📁 一些常用数值算法的 C程序源代码 对初级学数值计算很有帮助
💻 C
字号:
#define NMAX 20

void padeps(float *a, int n, int m, float *s)
{
      int mm, i, j;
      float b[NMAX+1], c[NMAX+1];
      if(m > n || m <= 0) {
        printf("Argument error in PADE \n");
        exit();
      }
      if(a[1] == 0.0) {
        printf("A(1)  is zero in PADE\n ");
        exit();
      }
      if(m == 1) {
        *s=a[n];
        return;
      }
      mm=m-1;
      b[1]=1.0/a[1];
      c[1]=a[1];
      for(i=2; i<=n; i++) {
        b[i]=1.0/(a[i]-a[i-1]);
        c[i]=a[i];
      }
      for(j=1; j<=mm; j++) {
        c[1]=c[1]+1.0/(b[2]-b[1]);
        b[1]=b[1]+1.0/c[1];
        for(i=2; i<=n-j; i++) {
          c[i]=c[i]+1.0/(b[i+1]-b[i]);
          b[i]=b[i]+1.0/(c[i]-c[i-1]);
        }
      }
      *s=c[n-mm];
      return;
}






#define N 8
main()
{
    float a0[N+1],a[N], s;
    int m,i;
      printf("           M         S           Pi\n");
      a0[1] = 4.0;
      a[1] = 4.0;
      for(i=2; i<=N; i++) {
        a0[i] = -a0[i-1] * (2.0*i-3) / (2.0*i-1.0);
        a[i] = a[i-1] + a0[i];
      }
      for(m=N/2-1; m<=N/2+1; m++) {
        padeps(a,N,m,&s);
        printf("%d,   %f,    %f\n",  m, s, 4.0 * atan(1.0) );
      }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -