复化梯形和复化辛普生公式,积分函数在0~1上积分结果应该是PI

本文介绍了复化梯形公式和复化辛普生公式在数值积分中的应用,详细阐述了如何通过编程实现这两种方法来计算积分,并提供了实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include   <conio.h>                 /*   此头函数请不要删除   */
#include   <stdio.h>
float   N,A,B,X;
float   F(float   x);

float   Ti()                                 //复化梯形公式
{
  float   i,n,h,t,g=0;
  n=N;
h=(B-A)/n;

for(i=1;i <n;i++)
      {X=A+i*h;
        g=F(X)+g;
      }
t=h*(F(A)+2*g+F(B))/2;
return(t);
}

float   Si()                                     //复化辛普生公式
{float   i,n,h,t,p=0,g=0;
  n=N;
h=(B-A)/n;
for(i=1;i <(1+n/2);i=i+2)
      {X=A+i*h;
        g=F(X)+g;
      }
i=0;
for(i=2;i <(n/2);i=i+2)
      {X=A+i*h;
        p=F(X)+p;
      }
t=h*(F(A)+4*g+2*p+F(B))/3;
return(t);
}

float   F(float   x)                                     //被积分函数f(x)
{float   f;
f=4/(1+x*x);
return(f);
}

double   main()                                 //主函数
{float   z;
int   i;
loop:printf( "/n/n/n1为复化梯形公式,2为复化辛普生公式./n请输入你要用的公式的代码:/n ");
scanf( "%d ",&i);
if(i!=1&&i!=2)
{printf( "输入错误代码! ");
  goto   loop;
}
else   {printf( "输入积分上下限:/n ");
            scanf( "%f%f ",&A,&B);
   
            printf( "/n输入子区间个数:/n ");
            scanf( "%f ",&N);
//     printf( "/n/n%f,%f,%f ",A,B,N);
            if(i==1)
    {z=Ti();
            printf( "利用复化梯形公式计算 ");
    }
              else   if(i==2)
      {z=Si();
                printf( "利用复化辛普生公式计算 ");
      }
                     
              printf( "结果为:%f ",z);
              goto   loop;
              getch();                 /*   此语句请不要删除*/
}
return   0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值