矩形法求函数的定积分.docx
- 文档编号:1226532
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:3
- 大小:22.74KB
矩形法求函数的定积分.docx
《矩形法求函数的定积分.docx》由会员分享,可在线阅读,更多相关《矩形法求函数的定积分.docx(3页珍藏版)》请在冰点文库上搜索。
C语言在计算中的应用
用矩形法求函数的定积分(C语言实现)
在本程序中,先分别定义了5个C函数f1、f2、f3、f4、f5,用来代表5个不同的函数。
然后定义了一个求定积分的函数integral。
现在介绍矩形法求函数定积分的数学思想。
设函数f(x)在区间[a,b]上连续,在(a,b)上可导,将[a,b]之间的长度等分成n份(n越大计算越精确)。
于是第i块小矩形的面积为Si,
Si=b-anf(a+b-ani)
所有小矩形的面积之和为
i=1nSi
实际的定积分的值
abf(x)dx=limn→∞i=1nSi
所以说n值越大,计算越精确。
源代码如下:
#include
#include
#defineN1e6
doublef1(doublex)
{
doubley;
y=1.0+x;
returny;
}
doublef2(doublex)
{
doubley;
y=2.0*x+3;
returny;
}
doublef3(doublex)
{
doubley;
y=exp(x)+1.0;
returny;
}
doublef4(doublex)
{
doubley;
y=pow(1.0+x,2);
returny;
}
doublef5(doublex)
{
doubley;
y=pow(x,3);
returny;
}
doubleintegral(doublea,doubleb,double(*fun)(double))
{
inti;
doubled=(b-a)/N;
doublesum=0;
for(i=1;i<=N;i++)
{
sum=sum+d*(*fun)(a+i*d);//定积分近似计算公式
}//fun是指向函数的指针,该指针所指向的函数带有一个double型的形参,
//同时,该函数的返回值类型为double
returnsum;
}
voidmain()
{
doubleS[5];
intj;
S[0]=integral(0,1,f1);//fun指向f1
S[1]=integral(0,1,f2);//fun指向f2
S[2]=integral(0,1,f3);//fun指向f3
S[3]=integral(0,1,f4);//fun指向f4
S[4]=integral(0,1,f5);//fun指向f5
printf("输出各个函数的积分值:
\n");
for(j=0;j<5;j++)
{
printf("%lf\n",S[j]);
}
}
运行结果如图所示:
可以发现,计算值与理论值十分接近,当N取的足够大时,可以获得十分精确的值,但是运算次数也会增加,本函数的时间复杂度为O(n)。
从指针的用法上来讲,本程序使用了“指向函数的指针”。
一个函数的函数名,代表了这个函数的首地址,在主函数中,5次调用integral函数,实现了对5个不同的函数求积分。
integral函数包含了三个参数,前两个参数表示被积函数的上下限。
3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 矩形 函数 积分