复化梯形公式求积分-推荐下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工程大学
计算机科学与工程学院
《计算方法》实验报告
实验项目复化梯形公式求积分实验类别综合实验
实验目的及要求实验目的:学会用复化梯形公式求函数的积分,并应用该算法于实际问题。实验要求:要求能随意输入被积函数,进行算法设计,打印出误差限例题:求被积函数在0 ) ) (sin 1 /( 12 x + 公式:复化梯形公式: 设,(i=0,1,…,n-1) n a b h - =h x x i i = - +1 ]) ( 2 ) ( ) ( [ 2 1 1 ∑- = + + + = n i ih a f b f a f h I 误差限:) ( 12 ) (// 1 3 i n i n n f h T I f Eξ ∑- = - = - = 成绩评定表 类别评分标准分值得分合计 上机表现积极出勤、遵守纪律 主动完成设计任务 30分 程序代码比较规范、基本正确 功能达到实验要求 30分 实验报告及时递交、填写规范 内容完整、体现收获 40分 说明: 评阅教师: 日 期: 年 月 日 实 验 内 容 设计分析 复化数值积分:将区间[a,b]n 等分,取等距节点 n a b h n i ih a x i -= =+=,,...,2,1,0,由定积分的区间可加性,有 ()()dx x f dx x f b a n i x x i i ⎰∑⎰ =-=1 1 在每一个小区间上利用梯形积分公式有 ()()()[]i i x x x f x f h dx x f i i +≈ -⎰ -11 2 一般记()()()⎥ ⎦ ⎤⎢⎣⎡++=∑-=1122n i i n x f b f a f h T 称做n+1点复化梯形积分公式。 数学公式: ()()()()⎥ ⎦ ⎤ ⎢⎣⎡++≈∑⎰ -=1 122n i i b a x f b f a f h dx x f 算法描述: 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; 程序源代码: #include double f(double x)//求函数的值; { return1/(1+pow(sin(x),2.0)); } void EchelonIntegral(int n)//梯形积分 { double y=0; double h=(1.0-0.0)/n; for(int i=0;i<=n;i++) { double a=0.0+i*h,b=0.0+(i+1)*h; y=y+h*(f(a)+f(b))/2.0; } cout<<"对应所求的梯形求积分为"< double En=0.0; double mid=(0.0+1.0)/2.0; double x=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); double f2d=p/pow(1+sin(x)*sin(x),2); for(i=0;i { En=En+pow(h,3)/12.0*f2d; } cout<<"误差为"< } /*void ParabolicIntegral(int n)//抛物线积分 { double y=0; double t=(1.0-0.0)/n; for(int i=0;i { double a=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<<"对应所求的抛物线求积分为"< }*/ void main() {