版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮北师范大学2010届学士学位论文C语言求解定积分系别、专业数学科学学院信息与计算科学研究方向 计算机学生姓名 谢贵龙学 号 指导教师姓名 罗婷婷指导教师职称 讲师2010年4月20日C语言求解定积分
谢贵龙
(淮北师范大学,数学科学学院,淮北,235000)摘要本文以连续函数在闭区间上的定积分为研究的出发点。在简单介绍定积分、连续函数等相关定义后,论述了两种算法思想,并利用C语言编写相应的程序。通过函数举例验证了算法的合理性和正确性,并讨论了这两种算法在适用范围及精确度上的略微差异。最后通过本文的论述推广到其它求定积分的算法的实现。关键词C语言,定积分,编程CLanguagetoSolveDefiniteIntegralXieGuilong(SchoolofMathematicalScience,HuaibeiNormalUniversity,huaibei,235000)AbstractInthisthesis,definiteintegralofacontinuousfunctionintheclosedintervalstartingpointforresearch.Afterabriefintroductionofdefiniteintegralandcontinuousfunctiondefinition,IdiscussedtheideasoftwoalgorithmsandusedthecorrespondingprogramwritteninC.AndthenIverifiedthroughtheexampleFunctionalgorithmiscorrectandreasonable,discussedthescopeofthetwoalgorithmsandtheaccuracyoftheslightdifference.Finally,therequestwillbeextendedtootherpointsofthealgorithm,throughthediscussionofthisthesis.KeywordsCLanguage,definiteintegral,programming目录TOC\o"1-5"\h\z\o"CurrentDocument"引言 1\o"CurrentDocument"一、 C语言实现定积分计算的算法 11.1定积分 11.2C语言实现定积分计算的算法 2二、 模块构成和各模块功能 3\o"CurrentDocument"2.1关于算法一的模块构成和各模块功能 32.2关于算法二的模块构成和各模块功能 4三、 C语言求解定积分的具体程序 4\o"CurrentDocument"3.1程序一(复合梯形公式求解定积分) 43.2程序二(辛甫生公式求解定积分) 5四、 程序编译运行及调试情况 64.1程序一的编译运行及调试情况 64.2程序二的编译运行及调试情况 9\o"CurrentDocument"4.3程序简单分析 11\o"CurrentDocument"参考文献 11致谢 13引言随着计算机的普及,计算机越来越多的运用于数学领域,但在早期,计算机实现的数学作用仅仅是四则运算、统计计算等简单的功能。如今,科学发展神速,人们自然要求计算机实现更多样化,更深层次的数学功能,比如对定积分的自动求解等。长期以来,定积分的求解依赖于手动繁杂的计算,这不仅费时费力,且容易出错。于是,人们希望通过编写一套程序来实现对定积分的自动求解。然而函数的类型多种多样,定积分的求解方法也灵活多变,不可千篇一律,故本文以最简单的连续函数的定积分求解为出发点,展开研究,以定积分的定义为思想基础,设计C程序,来实现计算机对定积分的自动求解。一、C语言实现定积分计算的算法1・1定积分1・1・1定积分的定义[1]定积分就是求函数f(x)在区间[a,b]中图线下包围的面积。即y=0,x=a,x=b,y=f(x)所包围的面积。这个图形称为曲边梯形,特例是曲边梯形。如下图:设一元函数y=f 将区间[a,b]分成n个小区间[a,x],[x,x],[x,x]......[x,b]。设Ax二x-x,取区间Ax中曲线上任意一点记做/0、01 12 i ii i-1 ifc),作和式:ilim£f(giAxi)J"十Ii=i 丿若记久为这些小区间中的最长者。当九T0时,若此和式的极限存在,则称这个和式是函数f(x)在区间[a,b]上的定积分。记作:Jbf(x)dxa其中称a为积分下限,b为积分上限,f(x)为被积函数,f(x)dx为被积式,J为积分号。之所以称其为定积分,是因为它积分后得出的值是确定的,是一个数,而不是一个函数。1・1・2定积分的几何意义[1]它是介于x轴、函数f(x)的图形及两条直线x=a,x=b之间的各个部分面积的代数和。在x轴上方的面积取正号;在x轴下方的面积取负号。如图/ J/r\7(图2)1・2C语言实现定积分计算的算法1.2.1利用复合梯形公式实现定积分的计算[2],[3]假设被积函数为f(x),积分区间为[a,b],把区间[a,b]等分成n个小区间,各个区间的长度为h,即h=(b-a)/n,称之为“步长”根据定积分的定义及几何意义,定积分就是求函数f(x)在区间[a,b]中图线下包围的面积。将积分区间n等分,各子区间的面积近似等于梯形的面积,面积的计算运用梯形公式求解,再累加各区间的面积,所得的和近似等于被积函数的积分值,n越大,所得结果越精确。以上就是利用复合梯形公式实现定积分的计算的算法思想。复合梯形公式:T二hf(a)+2野f(x)+f(b[2]n2( 匸i i 丿具体算法如下:算法一Stepl:输入积分区间的端点值a和b;Step2:输入区间的等分个数n(要求n尽可能大,以保证程序运行结果有较高的精确度);Step3:计算步长h=(b—a)/n;Step4:对累加和赋初值T=(f一f)/2;abStep5:计算累加和T=£1f(x)ii=1Step6:算出积分值T=Txh;nStep7:输出积分近似值T,完毕。n1.2.2利用辛甫生公式实现定积分的计算假设被积函数为f(x),积分区间为[a,b],把区间[a,b]等分成n个小区间,各个区间的长度为h。在复合梯形公式的基础上,构造出一种加速计算积分的方法。作为一种外推算法,它在不增加计算量的前提下提高了误差的精度。具体算法如下:算法二Stepl:输入积分上限b和下限a;Step2:输入区间的等分个数n(要求n尽可能大,以保证程序运行结果有较高的精确度);Step3:利用辛甫生公式:S\n]=(4xTbn]—T\n])/3⑵,实现对定积分的求解(其中Tbn],Ttn]均为梯形公式计算所得的结果,由此可见辛甫生公式是以梯形公式为基础的);Step4:算出积分值S;nStep5:输出积分近似值S,完毕。n二、模块构成和各模块功能2.1关于算法一的模块构成和各模块功能该算法利用复合梯形公式的思想来编程,从而实现对连续函数的自动求解。程序主要由两部分组成。(1)、主函数部分[4]:定义区间等分的个数变量n,n为整型变量,即int。在此需要强调的是n的值应尽量大,使得程序运算结果更精确。定义积分上限变量b和下限变量a,步长变量h,中间变量T,以及积分变量Tn。考虑到实际情况中,这些变量常常不是整数,而单精度实数的有效位数只有7位,故定义它们为具有16位有效位数的双精度浮点型变量,即double。主函数部分主要实现对步长h的求解、对T赋初值,以及T的累加求和、积分值Tn的求解和输出等功能。即主函数实现了对复合梯形公式利用的功能。程序中被积函数是通过函数调用来实现的。(2)、被调函数f(x)[5]:该函数的作用在于定义一个被积函数,达到函数举例的目的。由于本论文研究的出发点为连续函数,故所定义的函数实例应为区间[a,b]上连续函数。2.2关于算法二的模块构成和各模块功能[6]该算法利用辛甫生公式的思想来编程,以复合梯形公式为基础,从而实现对连续函数的自动求解。程序主要由三部分组成。、主函数部分:定义区间等分的个数变量n,n为整型变量。定义积分上限变量b和下限变量a,以及积分变量Sn,均为双精度浮点型变量。由于辛甫生公式中利用到梯形公式,所以主函数需实现对复合梯形公式函数的调用。、被调函数T:该部分是将复合梯形公式作为一个普通函数来定义,是对算法一得变形使用。这样一来通过主函数利用辛甫生公式计算定积分而调用它,构造出一种加速计算积分的方法,使计算结果更精确。、被调函数f(x):定义一个被积函数,达到函数举例的目的。所定义的函数实例应为区间[a,b]上连续函数。三、C语言求解定积分的具体程序3.1程序一(复合梯形公式求解定积分)#include<stdio.h>voidmain(){doublef(doublex);/*f(x)为函数举例,即被积函数*/inti,n;/*n为区间等分的个数,应尽可能大*/doublea,b,h,T,Tn;/*a为积分下限,b为积分上限,h为步长*/printf("jifenxiaxiana:\n");scanf("%lf",&a);printf("jifenshangxianb:\n");scanf("%lf",&b);printf("qujiandengfengeshun(jinkenengda):\n");scanf("%d",&n);h=(b-a)/n;/*步长的计算*/T=(f(a)+f(b))/2;/*中间变量T赋初值*/for(i=1;i<n;i++)T=T+f(a+i*h);/*用循环控制来完成复合梯形公式的运算*/Tn=T*h;printf("hanshuf(x)dejifenzhiweiTn=%f\n",Tn);}/*以下为被积函数的定义,即函数举例*/doublef(doublex){doubley;y=x*x;return(y);}3.2程序二(辛甫生公式求解定积分)#include<stdio.h>voidmain(){doubleT(doublex,doubley,intz);doublea,b,Sn;intn;printf("jifenxiaxiana:\n");scanf("%lf",&a);printf("jifenshangxianb:\n");scanf("%lf",&b);printf("qujiandengfengeshun(jinkenengda):\n");scanf("%d",&n);Sn=(4*T(a,b,2*n)-T(a,b,n))/3;/*利用辛甫生公式求解定积分*/printf("hanshuf(x)dejifenzhiweiSn=%f\n",Sn);}/*以下为复合梯形公式的定义*/doubleT(doublex,doubley,intz){doubleh,Tn;inti;doublef(doublet);h=(y-x)/z;Tn=(f(x)+f(y))/2;for(i=l;ivz;i++)Tn=Tn+f(x+i*h);Tn=Tn*h;return(Tn);}/*以下为被积函数的定义,即函数举例*/doublef(doublet){doubles;s=t*t;return(s);}四、程序编译运行及调试情况4・1程序一的编译运行及调试情况4・1・1被积函数为f(x)=x*x的情况(1)先编译,再运行,屏幕显示及操作如下:输入:4+回车jifenxiaxiana:4jiFenshancfxianb:输入:10+回车jifenshanxianb:10qujiandenyFenyeshun<jinl<enen</da)输入:100+回车grijActiiLit:ilyren占川unjj_iiiterrerrgera106hanshuf<x>dejifenzhiweiTn=312.00368BPpeesanykei;tocontinue(手工计算所得结果为312)(2)输入:3+回车jifenxiaxiana~jifensliansxianb:输入:11+回车jifenshangxianb:il龍口jiandengfengesliun<Jinkeneng-da>输入:150+回车hanshuf<x>dejifenwhiueiTn=434.&70459Pirsssanykeytocontinue(手工计算所得结果为434.666667)(3)国|"F匕直编程器\Turbo匚辿0\FROJ1jifenxJ.axi.ana.输入:3+回车jifenshangxianb:输入:11+回车nujiandengfengeshun<jinhenen$|da>:输入:3+回车hanshitfCx>dejifen2>iiueiTn=444-148148Pi'essanykeytocontinue(手工计算所得结果为434.666667)4・1・2被积函数为f(x)=x*x*x+2的情况将被积函数改为f(x)=x*x*x+2,具体做法如下:将程序一中的被调函数doublef(doublex){doubley;y=x*x;return(y);}改为doublef(doublex){doubley;y=x*x*x+2;return(y);}然后重新编译,再运行,屏幕显示及操作如下:"F辻f編程器\T-urbo匚乞D\FROJ1jiFenxiaxiana输入:45+回车jiFenxiaxi-ana.;45jiFensliangxianh:输入:112+回车jifenshangxianb;112qujiandengFengeshun(jinkeneng-da>输入:10000+回车lianEhufCx>dejifenzhiueiTn=38312961-868049Pr-ess乱nykeytocontinue(手工计算所得结果为3831296.75)4・2程序二的编译运行及调试情况4.2.1被积函数为f(x)=x*x的情况(1)BfiTF::让骗程器iTvrboC2.0K?RJOJEjiFenxiaxiana:输入:4+回车jifenxiaxlanat4j1fenshangxianb-输入;10+回车jitensfiancfxiann:iasin.jinndengffengeshun<jinJcenengda.>输入:100+回车qujnianden?1gcshunjdLnnensrda?=jieuhanshuf<x2>dejifenzhiwei£n=312-861313^0Ppessansrkeytocontinu.e(手工计算所得结果为312,比较程序一得出的结果Tn=312.003600)(2)程器iTwbbC?.D\PRJ0J-输入:3+回车jiFeraxiaxiana:P ■jifenshangxianb,输入:11+回车Jifensiiangxian11以ujiandengfenqeshun<Jinkenengrda>输入:150+回车hanshnF<x5deJifenzhiweiSn=434.&GGGG7Pressanykuytocontinue(手工计算所得结果为434.666667,比较程序一得出的结果Tn=434.670459)(3)"F::“骗程器\TurtoC2-.D\FRJ0JLjiFenxiaxiana输入:5+回车jLfenxiaxiana:5jLFenshanyxianb:输入:5+回车jifenshangxianb;qujIahdengfengesliun<Jinkeneng-da>输入:200+回车hans:hufCx>dejifensLiuei£n=0.Pr-ess keytocontinue(手工计算所得结果为0)4.2.2被积函数为f(x)=x*x*x+2的情况"F::让骗程辭iTwboC?>D\PRJOJ1输入:45+回车jiFenxia.na-jifen£liansxianb:输入:112+回车jlfenshangxlanh-M2sfiJtjtandengfenhesliun<jinkenengda>:输入:10000+回车10000hanEhu.fCx>dejifen3hiueiSn=38312961.750000?pessanykeytocontinue(手工计算所得结果为38312961.75,比较程序一得出的结果Tn=38312961.868049)4.3程序简单分析:从运行所得结果来看以上两个程序虽简短,但能较精确的求解出被积f(x)的定积分。可见其算法思想,以及程序编辑的正确性。从程序调试过程可知,区间等分个数n越大,所得结果越精确。比如在4.1.1程序一中的(2)、(3),在相同被积函数f(x)=x*x,相同积分上下限的前提下,当区间等分个数为n=150时,运行所得结果Tn=434.670459;当区间等分个数为n=3时,运行所得结果Tn=444.148148。而实际积分值应为Tn=434.666667,如此说明区间等分个数n越大,所得结果越精确。从两个程序运行所得结果的对比,显然,程序二比程序一在不增加计算量的前提下具有较高的精确度。即在条件相同的前提下,利用辛普生公式求解定积分比利用复合梯形公式求解定积分更有效可行。本文的研究具有举一反三的作用。程序二以辛普生公式为思想基础,对程序一进行改造,使得复合梯形公式在程序二中作为普通函数被调用,构造出一种加速计算积分的方法使计算结果更精确。在此值得一提的是,另外两个著名的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国轿车子午胎全钢贴花两半模具数据监测研究报告
- 2025至2030年中国汽车液压双缸举升机数据监测研究报告
- 2025至2030年中国化妆水数据监测研究报告
- 2025年中国盲球清市场调查研究报告
- 2025年中国双盘粉肠炉市场调查研究报告
- 2025年中国L板(升降)沾浆机市场调查研究报告
- 2025年度数据中心设施租赁合同范本3篇
- 二零二五年度水库大坝安全监测与水质监测服务合同3篇
- 2025年度住宅小区防水检测评估合同样本
- 2025年度电梯安全风险评估与预警系统开发合同4篇
- 2025福建新华发行(集团)限责任公司校园招聘30人高频重点提升(共500题)附带答案详解
- 山东铁投集团招聘笔试冲刺题2025
- 真需求-打开商业世界的万能钥匙
- 2025年天津市政集团公司招聘笔试参考题库含答案解析
- GB/T 44953-2024雷电灾害调查技术规范
- 2024-2025学年度第一学期三年级语文寒假作业第三天
- 2024年列车员技能竞赛理论考试题库500题(含答案)
- 心律失常介入治疗
- 《无人机测绘技术》项目3任务2无人机正射影像数据处理
- 6S精益实战手册
- 展会场馆保洁管理服务方案
评论
0/150
提交评论