矩形法求函数的定积分.docx

上传人:b****2 文档编号:336313 上传时间:2022-10-09 格式:DOCX 页数:3 大小:22.74KB
下载 相关 举报
矩形法求函数的定积分.docx_第1页
第1页 / 共3页
矩形法求函数的定积分.docx_第2页
第2页 / 共3页
矩形法求函数的定积分.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

矩形法求函数的定积分.docx

《矩形法求函数的定积分.docx》由会员分享,可在线阅读,更多相关《矩形法求函数的定积分.docx(3页珍藏版)》请在冰豆网上搜索。

矩形法求函数的定积分.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1