您好,欢迎访问三七文档
武汉工程大学计算机科学与工程学院《计算方法》实验报告实验项目复化梯形公式求积分实验类别综合实验实验目的及要求实验目的:学会用复化梯形公式求函数的积分,并应用该算法于实际问题。实验要求:要求能随意输入被积函数,进行算法设计,打印出误差限例题:求被积函数))(sin1/(12x在0x1上的积分公式:复化梯形公式:设nabh,hxxii1(i=0,1,…,n-1)])(2)()([211niihafbfafhI误差限:)(12)(//103ininnfhTIfE成绩评定表类别评分标准分值得分合计上机表现积极出勤、遵守纪律主动完成设计任务30分程序代码比较规范、基本正确功能达到实验要求30分实验报告及时递交、填写规范内容完整、体现收获40分说明:评阅教师:计算机科学与工程学院2日期:年月日实验内容设计分析复化数值积分:将区间[a,b]n等分,取等距节点nabhniihaxi,,...,2,1,0,由定积分的区间可加性,有dxxfdxxfbanixxii11在每一个小区间上利用梯形积分公式有iixxxfxfhdxxfii112一般记1122niinxfbfafhT称做n+1点复化梯形积分公式。数学公式:1122niibaxfbfafhdxxf算法描述:Step1:输入a,b和正整数n;Step2:置h=(b-a)/n;Step3:F=f(a)+f(b);l=0;Step4:对j=1,2,…,n循环执行5;Step5:置x=a+jh;l+=f(x);Step6:置T=h(F+2l)/2Step7:输出T;程序源代码:#includeiostream#includemath.husingnamespacestd;计算机科学与工程学院3doublef(doublex)//求函数的值;{return1/(1+pow(sin(x),2.0));}voidEchelonIntegral(intn)//梯形积分{doubley=0;doubleh=(1.0-0.0)/n;for(inti=0;i=n;i++){doublea=0.0+i*h,b=0.0+(i+1)*h;y=y+h*(f(a)+f(b))/2.0;}cout对应所求的梯形求积分为yendl;doubleEn=0.0;doublemid=(0.0+1.0)/2.0;doublex=mid,p=2*sin(2*x)*sin(2*x)*(1+sin(x)*sin(x))-2*cos(2*x)*pow(1+sin(x)*sin(x),2);doublef2d=p/pow(1+sin(x)*sin(x),2);for(i=0;in;i++){En=En+pow(h,3)/12.0*f2d;}cout误差为Enendl;}/*voidParabolicIntegral(intn)//抛物线积分{doubley=0;doublet=(1.0-0.0)/n;for(inti=0;in;i++){doublea=0.0+i*t,b=0.0+(i+1)*t;y=y+t*(f(a)+f(b)+4*f((a+b)/2.0))/6.0;}cout对应所求的抛物线求积分为yendl;}*/voidmain()计算机科学与工程学院4{cout*********************用梯形积分公式求积分1/(1+pow(sin(x),2))的值****************endl;cout请输入把0到1的范围几等分?\t;intm1;cinm1;EchelonIntegral(m1);coutendl;charanswer1;cout是否要继续求该算法?(y/n)\t;cinanswer1;while(answer1=='y'){cout请输入把0到1的范围几等分?\t;cinm1;EchelonIntegral(m1);//3.直线求积分;coutendl;cout是否要继续求该算法?(y/n)\t;cinanswer1;}coutendl;}计算机科学与工程学院5测试用例计算机科学与工程学院6实验总结复化数值积分就是为了减少数值积分的误差,可以把积分区间分成若干小区间,在每个小区间上采取低阶数值积分公式,然后把这些小区间上的数值积分结果加起来作为函数在整个区间上的近似,类似于分段差值。在此次实验中,我学会了怎样以专业的知识,从专业的角度来考虑所遇见的问题或者与专业相关的问题,并以自己的看法,给予实现。同时,在此次实验中,也有一些不近人意的地方,也需要我不断改进和练习。比如误差怎样取值,保证其最小。
本文标题:复化梯形公式求积分
链接地址:https://www.777doc.com/doc-5077775 .html