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

📄 fuhuatixing.c

📁 用复化梯形的算法思想求取某一表达式在某一点的满足精度的值
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float f(float x)
{
  float j;
  j=x/(1+x*x*x);
  return (j);
}
void main ()
{
  float h,m,n,sum=0.0,i;
  float S[32],C[16],T[64];
  int t,j,k;
  printf("Input the low and the high point of the expression:");
  scanf("%f%f",&m,&n);
  if(n<=m)
  {
    printf("You have put the wrong numbers,reput again:");
    scanf("%f%f",&m,&n);
  }

  printf(" the expression is :f=x/(1+x*x*x)\n");
  for(t=1;t<=64;t*=2 )
  {
    h=(float)((n-m)/(float)t);
    for(i=m;i<=n;i+=h)
    {
      sum+=((h/2.0)*(2.0*f(i)));
    }
    sum-=((h/2.0)*(f(m)+f(n)));
    T[t]=sum;
    printf("T[%d]=%6f\n",t,sum);
    sum=0.0;
  }
  for(j=1;j<=32;j*=2)
  {
    S[j]=(float)((4.0*T[2*j]-T[j])/3.0);
    printf("\nS[%d]=%6f",j,S[j]);
  }
   printf("\n");
  for(k=1;k<=16;k*=2)
  {
    C[k]=(float)((16.0*S[2*k]-S[k])/15.0);
    printf("\nC[%d]=%6f",k,C[k]);
  }
  printf("\n");
  for(t=1;t<=64;t*=2)
  {
    if(fabs(T[2*t]-T[t])<=0.001)
    {
      printf("\nThe accurate result is f=T[%d]=%6f\n",2*t,T[2*t]);
      t=65;
    }
  }
  printf("\n");
  for(k=1;k<=16;k*=2)
  {
    if(fabs(C[k]-S[2*k])<=0.001)
    {
        printf("\nThe accuate result is f=C[%d]=%6f",k,C[k]);
        k=17;
     }
  }
  getch();
}


⌨️ 快捷键说明

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