c语言用六种方法求定积分

c语言用六种方法求定积分

ID:15092159

大小:415.00 KB

页数:13页

时间:2018-08-01

c语言用六种方法求定积分_第1页
c语言用六种方法求定积分_第2页
c语言用六种方法求定积分_第3页
c语言用六种方法求定积分_第4页
c语言用六种方法求定积分_第5页
资源描述:

《c语言用六种方法求定积分》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.描述问题利用①左矩形公式,②中矩形公式,③右矩形公式,④梯形公式,⑤simpson公式,⑥Gauss积分公式求解定积分。2.分析问题2.1定积分21.1定积分的定义定积分就是求函数在区间中图线下包围的面积。即所包围的面积。这个图形称为曲边梯形,特例是曲边梯形。如下图:(图1)设一元函数,在区间内有定义。将区间分成个小区间。设,取区间中曲线上任意一点记做,作和式:若记λ为这些小区间中的最长者。当时,若此和式的极限存在,则称这个和式是函数在区间上的定积分。记作:  其中称为积分下限,为积分上限,为被积函数,为被积式,∫为积分号。之

2、所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。21.2定积分的几何意义[1]它是介于x轴、函数f(x)的图形及两条直线x=a,x=b之间的各个部分面积的代数和。在x轴上方的面积取正号;在x轴下方的面积取负号。如图2.2言实现定积分计算的算法22.1利用复合梯形公式实现定积分的计算假设被积函数为,积分区间为,把区间等分成个小区间,各个区间的长度为,即,称之为“步长”。根据定积分的定义及几何意义,定积分就是求函数在区间中图线下包围的面积。将积分区间等分,各子区间的面积近似等于梯形的面积,面积的计算运用梯形

3、公式求解,再累加各区间的面积,所得的和近似等于被积函数的积分值,越大,所得结果越精确。以上就是利用复合梯形公式实现定积分的计算的算法思想。复合梯形公式:[2]具体算法如下:算法一1:输入积分区间的端点值和;2:输入区间的等分个数(要求尽可能大,以保证程序运行结果有较高的精确度);3:计算步长;4:对累加和赋初值;5:计算累加和6:算出积分值;7:输出积分近似值,完毕。1.2.2利用Smpson公式实现定积分的计算假设被积函数为,积分区间为,把区间等分成个小区间,各个区间的长度为。在复合梯形公式的基础上,构造出一种加速计算积分的方法

4、。作为一种外推算法,它在不增加计算量的前提下提高了误差的精度。具体算法如下:算法二1:输入积分上限和下限;2:输入区间的等分个数(要求尽可能大,以保证程序运行结果有较高的精确度);3:利用辛甫生公式:[2],实现对定积分的求解(其中,均为梯形公式计算所得的结果,由此可见辛甫生公式是以梯形公式为基础的);4:算出积分值;5:输出积分近似值,完毕。1.2.3利用Guass公式实现定积分计算Guass型求积公式是构造高精度差值积分的最好方法之一。他是通过让节点和积分系数待定让函数f(x)以此取i=0,1,2....n次多项式使其尽可能多

5、的能够精确成立来求出积分节点和积分系数。高斯积分的代数精度是2n-1,而且是最高的。通常运用的是-1---+1的积分节点和积分系数,其他积分域是通过变换x=(b-a)t/2+(a+b)/2变换到-1到1之间积分。算法三1:输入积分上限和下限;2:利用Guass公式,求定积分4:算出积分值;5:输出积分近似值,完毕。1.程序的编写3.1程序一(左矩形公式)3.1.1源程序#include#includevoidmain(){doublef(doublex);/*f(x)为函数举例,即被积函数*/in

6、ti,n;/*n为区间等分的个数,应尽可能大*/doublea,b,h,s;/*a为积分下限,b为积分上限,h为步长*/printf("积分下限a:");scanf("%lf",&a);printf("积分上限b:");scanf("%lf",&b);printf("区间等分个数n:");scanf("%d",&n);h=(b-a)/n;/*步长的计算*/s=f(a)*h;for(i=1;i

7、积函数的定义,即函数举例*/doublef(doublex){doubley;y=sqrt(4-x*x);return(y);}3.1.2程序一的编译运行被积函数为f(x)=sqrt4-(x*x)的情况先编译,再运行,屏幕显示及操作如下:输入0+回车输入2+回车输入1000+回车3.2程序二(中矩形公式)3.2.1源程序#include#includevoidmain(){doublef(doublex);/*f(x)为函数举例,即被积函数*/inti,n;/*n为区间等分的个数,应尽可能大*/d

8、oublea,b,h,s;/*a为积分下限,b为积分上限,h为步长*/printf("积分下限a:");scanf("%lf",&a);printf("积分上限b:");scanf("%lf",&b);printf("区间等分个数n:"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。