收藏 分销(赏)

龙贝格方法.doc

上传人:人****来 文档编号:4315794 上传时间:2024-09-05 格式:DOC 页数:4 大小:57.05KB 下载积分:5 金币
下载 相关 举报
龙贝格方法.doc_第1页
第1页 / 共4页
龙贝格方法.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
实验三 龙贝格方法 【实验内容】1. 理解龙贝格方法的基本思路 2. 用龙贝格方法设计算法,编程求解一个数值积分的问题。 【实验方法与步骤】(对于必须编写计算机程序的实验,要附上学生自己编写的程序) 1. 龙贝格方法的基本思路 龙贝格方法是在积分区间逐次二分的过程中,通过对梯形之值进行加速处理,从而获得高精度的积分值。 2. 龙贝格方法的算法 步骤1 准备初值 和,用梯形计算公式计算出积分近似值 步骤2 按区间逐次分半计算梯形公式的积分近似值 令 , 计算 , 步骤3 按下面的公式积分(为便于编程,写下列形式) 梯形公式: 辛普生公式: 龙贝格公式: 步骤4 精度控制 当,(为精度)时,终止计算,并取为近似值,否则,将步长折半,转步骤2。 #include<stdio.h> #include<math.h> float f(float ) { return 4/(1+x*x); } float Romberg(float a,float b,float( * f)(float),float eps) { int n=1,k; float h=b-a,y,temp; float T1,T2,S1,S2,C1,C2,R1,R2; T1=(b-a)/2*(( * f)(a)+( * f)(b)); while(1) { temp=0; for(k=0;k<=n-1;k++) { y=a+k*h+h/2; temp+=( * f)(y); } T2=(T1+temp*h)/2; if(fabs(T2-T1)<eps) return T2; S2=T2+(T2-T1)/3; if(n==1){T1=T2;S1=S2;h/=2;n*=2;continue;} C2=S2+(S2-S1)/15; if(n==2){C1=C2;T1=T2;S1=S2;h/=2;n*=2;continue;} R2=C2+(C2-C1)/63; if(n==4){R1=R2;C1=C2;T1=T2;S1=S2;h/=2;n*=2;continue;} if(fabs(R2-R1)<eps) return R2; R1=R2;C1=C2;T1=T2;S1=S2;h/=2;n*=2; } } void main() { double eps=5e-6; printf("R=%f",Romberg(0.0,1.0,f,eps)); }【实验结果】
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服