C语言求定积分

.写一个用矩形法求定积分的函数,求sin(x)在(0,1)上的定积分。

#include <stdio.h>

#include <math.h>

float jifen(float a,float b)

{int i,l;

float n=0.001,s=0;  //n表示划分的单位宽度,n越小结果越精确,n是矩形的宽

l=(b-a)/n;  // l表示有多少个单位宽度

for(i=0;i<l;i++)

s=n*sin(a+n*i)+s;  // sin(a+n*i)是矩形的长

printf("用矩形法求得该函数在(%2.0f,%2.0f)上的积分为%f\n",a,b,s);

}

 

main()

{

 jifen(0,1);

}

 

.写一个用梯形法求定积分的函数,求sin(x)在(0,1)上的定积分。

#include <stdio.h>

#include <math.h>

float jifen(float a,float b)

{int i,l;

float n=0.001,s=0;

l=(b-a)/n;

for(i=0;i<l;i++)

s=(sin(a+n*i)+sin(a+n*(i+1)))*n/2+s;  // (sin(a+n*i)是梯形的上底,sin(a+n*(i+1))是下底

printf("用梯形法求得该函数在(%2.0f,%2.0f)上的积分为%f\n",a,b,s);

}

 

main()

{

 jifen(0,1);

}

 

.(综合)写一个用矩形法和梯形法求定积分的通用函数,分别求sin(x)在(0,1)上、cos(x)(-1,1)上、exp在(0,2)上的定积分。

说明:jifen的函数定义中,double (*fun)(double)表示fun是指向函数的指针,被指的函数是一个实型函数,有一个实型形参,Fun是指向函数的指针变量。用jifen(0,1,sin)语句调用jifen函数时,给jifen函数传递了sin函数的入口地址,这时jifen函数中的fun函数就相当于是sin函数了,(*fun)(a+n*i)相当于sin(a+n*i)。这样jifen函数就是一个通用求定积分的函数了。

#include <stdio.h>

#include <math.h>

jifen(float a,float b,double (*fun)(double))

{int i,l;

float n=0.001,s=0,s1=0;

l=(b-a)/n;

for(i=0;i<l;i++)

{s=n*(*fun)(a+n*i)+s;

s1=((*fun)(a+n*i)+(*fun)(a+n*(i+1)))*n/2+s1;

}

printf("用矩形法求得该函数在(%2.0f,% 2.0f)上的积分为%f\n",a,b,s);

printf("用梯形法求得该函数在(%2.0f,% 2.0f)上的积分为%f\n\n",a,b,s1);

}

 

main()

{printf("1.sin函数:\n");

jifen(0,1,sin);

printf("2.cos函数:\n");

jifen(-1,1,cos);

printf("3.exp函数:\n");

jifen(0,2,exp);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值