用梯形算定积分

学校最近学习指针,结合书上的讲解和网上的资源,自己学着写了用梯形法算定积分的代码,主要如下:

#include<stdio.h>
#include<math.h> 
int main()
{
 float v,integral(int ,int ,int ,float (*p)(int ));
 int a,b,t,n; 
 float f1(int );
 float f2(int );
 float f3(int );
 float f4(int );
 float f5(int );
 
 scanf("%d %d",&a,&b);
 scanf("%d",&t);
 n=a-b;
 
 switch (t){
  case 1:v=integral(n,a,b,f1); break;
  case 2:v=integral(n,a,b,f2); break;
  case 3:v=integral(n,a,b,f3); break;
  case 4:v=integral(n,a,b,f4); break;
  case 5:v=integral(n,a,b,f5); break;
 }
 printf("定积分是%f",v);
 
 return 0;
}
float integral(int n,int x,int y,float (*p)(int)){
 int i,t;
 float y1,y2,sum=0.0;
 t=n/(x-y);
 for(i=x;i<y;i++){
  y1=(*p)(i);
  y2=(*p)(i+t);
  sum+=(y1+y2)*1.0/2;
 }
 printf("sum=%f\n",sum);
 return sum;
}

数学上定积分的计算是看成无穷分间隔极小的矩形面积,此代码只是用间隔为1的梯形计算,那不是改成间隔极小的梯形计算会更精确吗?只是该怎么写,有大佬知道的话请告诉小弟。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值