龙贝格积分实验报告
计算方法大作业——龙贝格积分
![计算方法大作业——龙贝格积分](https://img.taocdn.com/s3/m/42993dc4b14e852458fb575e.png)
3 龙贝格积分3.1 算法原理及程序框图龙贝格积分法是在复化梯形求积公式、复化辛普森求积公式和复化科茨求积公式关系的基础上,构造出的一种精度更高的数值积分方法。
对于复化梯形求积公式而言,近似积分为()2221[]41n n n n I f T T T T ≈+-=-.(11) 对于复化辛普森求积公式和复化科茨求积公式而言,也有类似的关系,如公式(12)和公式(13)。
()22221[]41n n n n I f S S S S ≈+-=- (12)()22231[]41n n n n I f C C C C ≈+-=- (13)通过对公式(11)~(13)做进一步分析,可得到公式(14)和公式(15)。
()22141n n n n S T T T =+--(14)()222141n n n n C S S S =+-- (15)根据公式(14)和公式(15)表现出来的规律,令龙贝格积分为()223141n n n n R C C C =+-- (16)其截断误差为c R h 8f (8)(η),已经具有很高的精度。
龙贝格积分法是将区间[a , b ]逐次分半进行计算,因此,对已知函数f (x )在区间[a , b ]上的龙贝格积分法的计算公式的算法如下,程序框图如图13所示。
(1) 计算T 1:[]1()()2b aT f a f b -=+;(2) 逐次计算T 2k +1:()1211221121,0,1,2222kk k k k i b a b a T T f a i k +++=--⎛⎫=++-= ⎪⎝⎭∑;(3) 逐次计算S 2k 、C 2k 和R 2k :()()()11111122222222232222141141141kk k k k k k k k k k k S T T T C S S S R C C C ++++++⎧=+-⎪-⎪⎪=+-⎨-⎪⎪=+-⎪-⎩;(4) 若122k k R R ε+-<,则取[]12k I f R +≈;否则,继续计算,直到满足精度为止。
龙贝格实验报告
![龙贝格实验报告](https://img.taocdn.com/s3/m/df1964878ad63186bceb19e8b8f67c1cfbd6ee4e.png)
龙贝格实验报告龙贝格实验报告龙贝格实验是一项经典的心理学实验,旨在探究人类对于延迟满足的选择行为。
实验的设计非常简单,但却能揭示出人类的心理特点和决策模式。
本文将对龙贝格实验进行介绍,并探讨实验结果对于我们日常生活中的决策行为的启示。
龙贝格实验最早由德国心理学家沃尔夫冈·龙贝格于1971年提出,他将实验对象置于一个选择情境中。
在这个情境中,实验对象需要在两个选项之间进行选择,一方面是能够立即获得一定的奖励,另一方面是需要等待一段时间才能获得更大的奖励。
实验对象可以根据自己的意愿选择不同的选项。
实验结果显示,大多数人更倾向于选择立即获得的小额奖励,而不是等待更长时间以获得更大的奖励。
这种行为模式被称为“即时满足偏好”。
这一结果揭示了人类的一种心理特点:我们更倾向于追求即时的满足感,而忽视了长期利益。
那么,为什么人们会有这种即时满足偏好呢?心理学家提出了一些解释。
首先,人们往往更容易预测和评估即时奖励,而对于未来的奖励往往难以准确评估。
这导致了人们对于即时奖励的价值更加敏感,而对于未来奖励的价值更加模糊。
其次,人们对于即时奖励的需求更加迫切,因为它们能够立即满足我们的欲望和需求,而未来奖励则需要等待和付出更多的努力。
然而,即时满足偏好并不总是明智的选择。
在现实生活中,我们常常需要做出一系列决策,这些决策涉及到长期利益和短期满足之间的权衡。
例如,我们是否应该立即购买心仪已久的商品,还是将钱储蓄起来以应对未来的不确定性?我们是否应该立即享受美食,还是节制自己以保持健康的身体?这些决策都需要我们权衡即时满足和长期利益之间的关系。
为了克服即时满足偏好的影响,我们可以采取一些策略。
首先,我们可以通过增强对未来奖励的预期和评估来提高对其价值的认识。
这意味着我们需要更加清晰地设定未来奖励的目标,并了解其对我们个人发展和幸福的重要性。
其次,我们可以通过设定明确的规划和目标来引导自己的行为。
例如,我们可以设定一个长期的储蓄计划,以确保我们能够在未来获得更大的回报。
数值分析积分实验报告(3篇)
![数值分析积分实验报告(3篇)](https://img.taocdn.com/s3/m/0c53ac55a22d7375a417866fb84ae45c3b35c287.png)
第1篇一、实验目的本次实验旨在通过数值分析的方法,研究几种常见的数值积分方法,包括梯形法、辛普森法、复化梯形法和龙贝格法,并比较它们在计算精度和效率上的差异。
通过实验,加深对数值积分理论和方法的理解,提高编程能力和实际问题解决能力。
二、实验内容1. 梯形法梯形法是一种基本的数值积分方法,通过将积分区间分割成若干个梯形,计算梯形面积之和来近似积分值。
实验中,我们选取了几个不同的函数,对积分区间进行划分,计算积分近似值,并与实际积分值进行比较。
2. 辛普森法辛普森法是另一种常见的数值积分方法,它通过将积分区间分割成若干个等距的区间,在每个区间上使用二次多项式进行插值,然后计算多项式与x轴围成的面积之和来近似积分值。
实验中,我们对比了辛普森法和梯形法的计算结果,分析了它们的精度差异。
3. 复化梯形法复化梯形法是对梯形法的一种改进,通过将积分区间分割成多个小区间,在每个小区间上使用梯形法进行积分,然后计算所有小区间积分值的和来近似积分值。
实验中,我们对比了复化梯形法和辛普森法的计算结果,分析了它们的精度和效率。
4. 龙贝格法龙贝格法是一种通过外推加速提高计算精度的数值积分方法。
它通过比较使用不同点数(n和2n)的积分结果,得到更高精度的积分结果。
实验中,我们使用龙贝格法对几个函数进行积分,并与其他方法进行了比较。
三、实验步骤1. 编写程序实现梯形法、辛普森法、复化梯形法和龙贝格法。
2. 选取几个不同的函数,对积分区间进行划分。
3. 使用不同方法计算积分近似值,并与实际积分值进行比较。
4. 分析不同方法的精度和效率。
四、实验结果与分析1. 梯形法梯形法在计算精度上相对较低,但当积分区间划分足够细时,其计算结果可以接近实际积分值。
2. 辛普森法辛普森法在计算精度上优于梯形法,但当积分区间划分较细时,计算量较大。
3. 复化梯形法复化梯形法在计算精度上与辛普森法相当,但计算量较小。
4. 龙贝格法龙贝格法在计算精度上优于复化梯形法,且计算量相对较小。
龙贝格算法-数值分析-实验报告
![龙贝格算法-数值分析-实验报告](https://img.taocdn.com/s3/m/2f8ac12ba5e9856a561260c4.png)
3 / 13
一、任务综述于分析
1.1 任务
1、 根据所掌握龙贝格算法,独立编写程序,实现具体问题的求解等; 2、 自己设计一个多项式,根据设定的代数多项式进行测试,调式程序; 3、 对所设计的程序解决实际问题并分析,撰写分析报告
1.2 分析
1、 首先先明确什么是龙贝格算法,了解他的基本原理,画出流程图,编写程序代码。 2、 自己设计一个多项式,对他利用龙贝格算法求出他的积分。并与真实值比较,检测程序是否有错误。 并进一步修改完善程序。可以多试几个多项式,来判断程序的正确性。 3、 任务三实际上是求平面曲线长的问题。利用弧长微分公式可求得结果。
四、测试 ................................................................................................................................................. 8
主要参考资料
《数值分析简明教程》 《数值分析课程设计》
王能超 陈越、童若锋
高等教育出版社 浙江大学出版社
教研室签字: 年 月 日
院签字: 年 月 日
2 / 13
目录
目录 ......................................................................................................................................................... 3 一、任务综述于分析 ............................................................................................................................. 4
龙贝格积分算法实验
![龙贝格积分算法实验](https://img.taocdn.com/s3/m/77ae35d8eff9aef8951e0672.png)
实验题目2 Romberg 积分法摘要考虑积分()()b aI f f x dx =⎰欲求其近似值,可以采用如下公式: (复化)梯形公式 11[()()]2n ii i hT f x f x-+==+∑2()12b a E h f η-''=-[,]a b η∈ (复化)辛卜生公式 11102[()4()()]6n i i i i hS f x f x f x -++==++∑4(4)()1802b a h E f η-⎛⎫=- ⎪⎝⎭ [,]a b η∈(复化)柯特斯公式 111042[7()32()12()90n i i i i hC f x f x f x -++==+++∑31432()7()]i i f xf x +++6(6)2()()9454b a h E f η-⎛⎫=- ⎪⎝⎭[,]a b η∈这里,梯形公式显得算法简单,具有如下递推关系121021()22n n n i i h T T f x -+==+∑因此,很容易实现从低阶的计算结果推算出高阶的近似值,而只需要花费较少的附加函数计算。
但是,由于梯形公式收敛阶较低,收敛速度缓慢。
所以,如何提高收敛速度,自然是人们极为关心的课题。
为此,记0,k T 为将区间[,]a b 进行2k等份的复化梯形积分结果,1,k T 为将区间[,]a b 进行2k等份的复化辛卜生积分结果,2,k T 为将区间[,]a b 进行2k等份的复化柯特斯积分结果。
根据李查逊(Richardson )外推加速方法,可得到1,11,,0,1,2,40,1,2,41m m k m km k m k T T T m -+-=-⎛⎫=⎪=-⎝⎭可以证明,如果()f x 充分光滑,则有,lim ()m k k T I f →∞= (m 固定),0lim ()m m T I f →∞=这是一个收敛速度更快的一个数值求积公式,我们称为龙贝格积分法。
该方法的计算可按下表进行0,0T 0,1T 0,2T … 0,m T 1,0T 1,1T … 1,1m T - 2,0T … 2,2m T - … … ,0m T很明显,龙贝格计算过程在计算机上实现时,只需开辟一个一维数组,即每次计算的结果,m k T ,可存放在0,k T 位置上,其最终结果,0m T 是存放在0,0T 位置上。
Romberg数值积分实验报告
![Romberg数值积分实验报告](https://img.taocdn.com/s3/m/2e58cf88680203d8ce2f24c5.png)
Romberg数值积分实验报告班级:__ 姓名:学号:日期:_一、实验目的1、加深外推法的原理理解, 掌握Romberg外推法的计算方法。
2、用matlab软件实现Romberg数值积分来计算题目的运算。
二、基本理论及背景1、理论推导:对区间[a,b],令h=b-a构造梯形值序列{T2K}。
T1=h[f(a)+f(b)]/2把区间二等分,每个小区间长度为h/2=(b-a)/2,于是T2 =T1/2+[h/2]f(a+h/2)把区间四(2)等分,每个小区间长度为h/2 =(b-a)/4,于是T4 =T2/2+[h/2][f(a+h/4)+f(a+3h/4).....................把[a,b] 2等分,分点xi=a+(b-a)/ 2 ·i (i =0,1,2 · · · 2k)每个小区间长度为(b-a)/ 2 .2、参考Romberg数值积分,实现积分的数值求解,完成下列题目:三、算法设计及实现1、算法设计(a)function y=fun1(x)y=sqrt(4-(sin(x)).^2);(b)function y=fun2 (x)y=log(1+2*x)/3;(c)function y=fun3(x)y=exp(-x).*sin(x.^2)四、实验步骤1、○1打开matlab软件,新建Romberg.m文件,在窗口中编辑Romber数值积分函数程序代码,并保存在指定的文件夹下,在Current Directory窗口右边点击《Browse For Folder》按钮指向Romberg.m文件;○2在Command Window中编辑相应要计算的题目的数值函数及相应的题目的表达式。
2、输出结果和初步分析说明(见附件一)。
五、使用说明实验结果分析1、在Command Window窗口中编辑要调用的函数名与指定的函数名字不同导致出现错误,通过改正与函数名相同即可。
龙贝格(Romberg)算法的应用实验报告
![龙贝格(Romberg)算法的应用实验报告](https://img.taocdn.com/s3/m/0304baa66c175f0e7dd13745.png)
Lab4 龙贝格(Romberg)算法的应用下面图1中的塑料雨蓬材料是由图2中所示的长方形平板塑料材料压制而成。
图1 图2已知图1的横截面曲线形状满足函数,则给定了雨蓬的长度后,要求需要平板原材料的长度。
函数接口定义:double Integral(double a, double b, double (*f)(double x, double y, double z), double TOL, double l, double t)在接口定义中:a、b分别为定积分的上、下界,f是积分核函数,其中x是积分哑元,y、z是本题目定义的特殊参数,分别对应中的l和t;TOL是要求积分达到的精度;l和t传入裁判输入的参数l和t的值。
另注意:的单位是厘米,输出的长度值要求以米为单位。
裁判程序样例如下:#include<stdio.h>#include<math.h>double f0( double x, double l, double t ){ /* 弧长积分的核函数*/return sqrt(1.0+l*l*t*t*cos(t*x)*cos(t*x));}double Integral(double a, double b, double (*f)(double x, double y, double z), double TOL, double l, double t);int main(){double a=0.0, b, TOL=0.005, l, t;while (scanf("%lf %lf %lf", &l, &b, &t) != EOF)printf("%.2f\n", Integral(a, b, f0, TOL, l, t));return 0;}裁判输入样例:2 100 1标准输出样例:1.68实验报告:1.求解步骤参照书上的龙贝格求积算法2.步骤①利用k=0;h=b-a;T[0][0]=(h/2)*(f(a,l,t)+f(b,l,t));求解T0(0)3.求解T0(0)到T0(k)的值由公式h=b−an 及h=b−a2k可得n=2k其中h为步长,n为二分次数又由递推公式:T2n=12T n+ℎ2∑f(xk+12)n−1k=0得T2k+1=12T2k+b−a2k+1∑f[a+b−a2k+1(2i−1)]2k−1i=1,k=0,1,2,3~其中xk+12= a+ℎ2(2i−1)。
MATLAB上机实验——采用龙贝格积分计算轴韧性模量
![MATLAB上机实验——采用龙贝格积分计算轴韧性模量](https://img.taocdn.com/s3/m/a2ff633c83c4bb4cf7ecd164.png)
数值分析应用案例:采用龙贝格积分计算轴韧性模量
某杆在轴向负载的作用下会发生变形,其应力—应变曲线如图所示。
曲线下方从应力为0的点到破裂点的面积称为材料的韧性模数。
它提供了一种方法,可以测量出要给定单位体积的材料施加多大的能量才能导致材料破裂。
因此,它代表着材料承受冲击负载的能力。
对于如图所示的应力—应变曲线,利用数值积分计算韧性模数。
s 40.0 37.5 43。
0 52.0 60.0 55.0
(a)轴向负载的杆(b)相应的应力—应变曲线,其中应力的单位是千镑每平方英寸(103lb/in2)而应变是无量纲量
解:采用数值积分计算韧性模数
0.25
M=f(e)
de
首先,需要通过实际测量所得的离散数据点对曲线进行多项式拟合。
得到拟合的多项式函数:
f(e)=-391428.21e5 + 243571.16e4– 64178.49e3 + 9133.92e2 -517.82e + 47.18
>>
进行积分计算:
0.25
de M=(−391428.21e5+243571.16e4–64178.49e3+9133.92e2−517.82e+47.18) 0
综上所述:
M=f(e)
0.25
0de≈12.16。
计算方法 实验报告 拉格朗日 龙贝格 龙格库塔
![计算方法 实验报告 拉格朗日 龙贝格 龙格库塔](https://img.taocdn.com/s3/m/bdc07dc158f5f61fb7366634.png)
主界面:
/*lagrange.c*/
float real_value(float x) /*由被插值函数计算真实值*/
c=getchar();
if(c=='N'||c=='n') break;
}
}
/*romberg.c*/
double function(double x) /*被积函数*/
{
return 4.0/(1+(x)*(x));
}
double t(double a,double b,int m) /*计算T1*/
实验二(龙贝格公式)
§公式
§算法描述
§流程图
§运行结果
§结果分析:Romberg积分法是在积分步长逐步折半的过程中,用低精度求积公式的组合得到更高精度求积公式的一种方法,它算法简单,且收敛加速效果极其显著。
实验三(四阶龙格库塔)
§公式
k1=h*f(xn,yn);
k2=h*f(xn+h/2,yn+k1/2);
T1=t(a,b,0);
T2=T1/2.0+t(a,b,1);
S1=(4*T2-T1)/3.0;
T1=T2;
T2=T1/2.0+t(a,b,2);
S2=(4*T2-T1)/3.0;
C1=(16*S2-S1)/15.0;
T1=T2;
T2=T1/2.0+t(a,b,3);
S1=S2;
S2=(4*T2-T1)/3.0;
龙贝格算法-数值分析-实验报告
![龙贝格算法-数值分析-实验报告](https://img.taocdn.com/s3/m/2f8ac12ba5e9856a561260c4.png)
主要参考资料
《数值分析简明教程》 《数值分析课程设计》
王能超 陈越、童若锋
高等教育出版社 浙江大学出版社
教研室签字: 年 月 日
院签字: 年 月 日
2 / 13
目录
目录 ......................................................................................................................................................... 3 一、任务综述于分析 ............................................................................................................................. 4
3 / 13
一、任务综述于分析
1.1 任务
1、 根据所掌握龙贝格算法,独立编写程序,实现具体问题的求解等; 2、 自己设计一个多项式,根据设定的代数多项式进行测试,调式程序; 3、 对所设计的程序解决实际问题并分析,撰写分析报告
1.2 分析
1、 首先先明确什么是龙贝格算法,了解他的基本原理,画出流程图,编写程序代码。 2、 自己设计一个多项式,对他利用龙贝格算法求出他的积分。并与真实值比较,检测程序是否有错误。 并进一步修改完善程序。可以多试几个多项式,来判断程序的正确性。 3、 任务三实际上是求平面曲线长的问题。利用弧长微分公式可求得结果。
)
(2)
4 / 13
直接验证易知 (3) 这就是说,用梯形法二分前后两个积分值 法的积分值 。 与 按式(3)做线性组合,结果得到辛普生
计算方法实验六 数值积分
![计算方法实验六 数值积分](https://img.taocdn.com/s3/m/c0f7ee09cc17552707220811.png)
四.实验程序:
复合梯形公式:
#include <stdio.h>
#include <math.h>
#define esp 0.5e-7
#define a 1
#define b 2
#define c 0
#define d 1
n=2;
h=(double)(d-c)/4;
do
{
k++;
f2+=f3;
s0=s;
f3=0;
for (i=1;i<=n;i++)
f3+=f2((c+(2*i-1)*h));
s=(h/3)*(f1+2*f2+4*f3);
n*=2;
h/=2;
}
while (fabs(s-s0)>esp);
printf("函数1分了%d次数:\n",k);
h/=2;
}
while (fabs(t-q)>esp);
printf("函数2分了%d次:\n",k);
printf("积分结果为:");
printf("%12.8lf\n",t);
}
int main()
{
printf("//***********复合梯形公式***********//\n");
fun1();
山西大学计算机与信息技术学院
实验报告
姓 名
学 号
专业班级
课程名称
计算方法
龙贝格数值积分报告(MATLAB)
![龙贝格数值积分报告(MATLAB)](https://img.taocdn.com/s3/m/cc8e3a5a804d2b160b4ec0a9.png)
目录设计总说明 (1)关键词 (1)绪论 (2)第1章课程设计正文 (3)1.1 需求分析 (3)1.2 界面设计 (3)1.3 功能实现 (4)1.4系统算法和程序代码的实现 (5)第2章总结 (7)参考文献 (8)设计总说明学习了《数值分析》和相关开发软件课程并能够熟练掌握各种算法的原理及其求解方法和特点;1、独立进行面向对象软件的分析、设计及在计算机中进行编写代码和调试工作。
培养自己独立进行面向对象软件的分析、面向对象软件的设计及面向对象软件的实现与测试的能力;2、通过课题的理论设计和在计算机中实验调试代码,加深对数值分析知识的理解,培养软件开发的实践技能,提高分析解决具体问题的能力;3、充分利用面向对象程序设计,用精要的语句设计程序,培养独立创新能力;4、熟练运用MATLAB7开发界面美观、清晰,简单,好学,好用的计算软件;说明书中一般包括任务的提出、方案论证、设计与计算说明、试验调试及结果的分析、结束语等内容。
要求理论依据充分,数据准确,公式推导及计算结果正确。
涉及到计算机软件:学生要独立完成一个软件或较大软件中的一个模块,要有足够的工作量;要写出相关的设计文件;能够进行计算机演示和给出运行结果。
在此软件中,我们运用龙贝格方法进行积分。
此外,只需要在编辑框中输入上下限和含x的被积函数,点击计算按钮,得到计算结果。
关键词:MATLAB 数值分析龙贝格积分绪论数值分析是计算数学的一个主要部分,它研究用计算机求解各种数学问题的数值计算方法及其理论与软件实现。
数值分析一个很强的特点就是面向计算机,要根据计算机特点提供切实可行的有效算法。
因此,本次课程设计是在学习了《数值分析》和相关开发软件课程之后,为了能掌握数值分析的基本概念,结合实际的操作和设计,巩固课堂教学内容,使自己能掌握数值分析的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数值分析理论,规范、科学地完成一个小型可视化软件的设计与实现,把理论课与实验课所学内容做一综合,通过实际项目的设计、开发,培养学生独立进行计算软件的建模、在计算机中进行计算、设计、通过相关软件开发系统,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
龙贝格积分实验报告
![龙贝格积分实验报告](https://img.taocdn.com/s3/m/dc24bd74ba1aa8114531d96f.png)
二、Romberg 积分法1.变步长Romberg 积分法的原理复化求积方法对于提高精度是行之有效的方法,但复化公式的一个主要缺点在于要事先估计出部长。
若步长过大,则精度难于保证;若步长过小,则计算量又不会太大。
而用复化公式的截断误差来估计步长,其结果是步长往往过小,而且''()f x 和(4)()f x 在区间[,]a b 上的上界M 的估计是较为困难的。
在实际计算中通常采用变步长的方法,即把步长逐次分半(也就是把步长二等分),直到达到某种精度为止,这种方法就是Romberg 积分法的思想。
在步长的逐步分半过程中,要解决两个问题: 1. 在计算出N T 后,如何计算2N T ,即导出2N T 和N T 之间的递推公式; 2. 在计算出N T 后,如何估计其误差,即算法的终止的准则是什么。
首先推导梯形值的递推公式,在计算N T 时,需要计算1N +个点处的函数值在计算出NT 后,在计算2N T 时,需将每个子区间再做二等分,共新增N 个节点。
为了避免重复计算,计算2N T 时,将已计算的1N +个点的数值保留下来,只计算新增N 个节点处的值。
为此,把2N T 表示成两部分之和,即由此得到梯形值递推公式 因此由复化梯形公式的截断误差有若''()f x 变化不大时,即''''12()()f f ηη≈,则有式(2)表明,用2N T 作为定积分I 的近似值,其误差大致为21()3N N T T -,因此其终止条件为其中ε是预先给定的精度。
2.Romberg 积分公式将上述方法不断推广下去,可以得到一个求积分的序列,而且这个序列很快收敛到所求的定积分。
记(0)N N T T =,将区间N 等分的梯形值。
(1)N N T S =,将区间N 等分的Simpson (2)N N T C =,将区间N 等分的Cotes 。
(3)N N T R =,将区间N 等分的Romberg 。
计算方法实验三
![计算方法实验三](https://img.taocdn.com/s3/m/09babe9783c4bb4cf7ecd1bc.png)
《计算方法》实验指导用书班级姓名学号教师盐城工学院机械工程学院二○一九年秋实验三 数值积分一、实验目的利用复合梯形公式、复合辛普生公式和龙贝格数值积分公式计算()ba f x dx ⎰的近似值。
二、实验方法(1)将区间[],a b 区间n 等分,记分点为;0,1,,i b a x a ih h i n n -⎛⎫=+== ⎪⎝⎭,并在每个小区间[]1,i i x x +内应用梯形公式()()()1122n n i i h T f a f x f b -=⎡⎤=++⎢⎥⎣⎦∑(2)在每个小区间[]1,i i x x +内应用辛普生公式()()()111012426n n n i i i i h S f a f x f x f b --+==⎡⎤⎛⎫=+++⎢⎥ ⎪⎢⎥⎝⎭⎣⎦∑∑式中12i x+为[]1,i i x x +的中点。
(3)先用梯形求积公式计算()()()12T b a f a f b =-⨯+⎡⎤⎣⎦,然后,采用将求积区间(),a b 逐次折半的办法,令区间长度()()20,1,i h b a i =-= ,计算2111222nn n k h T T fa h k =⎛⎫⎛⎫=++- ⎪ ⎪⎝⎭⎝⎭∑ 式中2i n =。
于是,得到辛普生公式()22n n n n S T T T =+- 得到科特斯求积公式()2215n n n n C S S S =+- 最后得到龙贝格求积公式()22n n n n R C C C =+-利用上述各公式计算,直到相邻两次的积分结果之差满足精度要求。
三、实验内容1. 学习icourse163平台上以下视频课程:《上机讲解011_MATLAB 数值积分问题》,《上机讲解012_MATLAB 积分问题的表达与输出》,《上机讲解013_MATLAB 双重或三重积分问题》,上机练习并记录(3分);2.利用复化梯形公式、复化辛普生公式和龙贝格数值积分方法计算221xe xe dx =⎰和12041dx x π=+⎰的近似值,要求误差为71102ε-=⨯,将计算结果与精确值比较,并对计算结果进行分析(计算量、误差),可参考课本227页(5分)。
龙贝格算法报告
![龙贝格算法报告](https://img.taocdn.com/s3/m/694f63e3b8f67c1cfad6b8b5.png)
龙贝格算法报告 中国地质大学姓名:马立华 班号:121112 学号:20111000536 (一)、龙贝格算法的推导工程的形成。
()()baI f f x dx =⎰n 等份,分点1、梯形公式是将区间[,a b ⎤⎦ 有为kx =a+kh ,h=b a n- ,k=0,1,2,3....在每个小区间上采用梯形公式为110[()()]2n i i i h T f x f x -+==+∑.通过计算复合梯形公式的余项为. (梯形公式是把大区间分成一些小区间,通过梯形面积近似曲边提醒的体积)2、梯形公式的递推法,复合梯形公式在区间[,a b ⎤⎦ 上,共有n 等份,则共有n+1个分点,将求积区间在二分一次,则分点增加至2n+1个,由梯形公式()()()⎥⎦⎤⎢⎣⎡+-=∑-=1122n k k n b f x f a f h T 得式()∑-=++=121222n k k n nx f h T T 求出n T 2;(梯形公式是通过增加区间每一次都是将上一次区间加倍)3,外推技巧:由1,2,可以看出梯形公式收敛地速度较慢,并且精确地阶数较低由余项得 h=b a n -,。
(外推技巧是通过将梯形公式的递推法得到的公式进行加减乘除法提高其精确度。
) 定理四 设](),f x c a b ∞⎡∈⎣,则有2462123()........l l T h I h h h h αααα=++++++ (1)其中2"()12n b a R h f η-=-]2''(),,12n b a I T h f a b ηη-⎡-=-∈⎣3201x x dx+⎰系数l α(l=1,2,3....)与h 无关。
通过定理四 则有24212().......() (24162)l l h h h h T I ααα=+++++。
(2),通过(1)(2)得46124(/2)()() (3)T h T h S h I h h ββ-==+++发现我们只是通过简单地加减法,就将误差的阶数提高了两阶。
计算方法试验报告
![计算方法试验报告](https://img.taocdn.com/s3/m/8a0c823c7375a417866f8f4e.png)
【实验内容】 1.理解复合型牛顿-柯特斯积分公式的原理 2.理解固定步长和变步长积分的区别和联系 3.理解等距节点上牛顿-柯特斯积分和龙贝格积分 4.完成变步长的牛顿-柯特斯积分程序 5.完成龙贝格积分程序 6.两种积分的收敛速度和计算量的分析 【实验方法与步骤】 一、回答下面的问题 1.什么是复合求积公式?写出事前误差估计和事后误差估计的公式。 2.当积分区间等分个数是奇数时,如何搭配使用 n=2 和 n=3 的辛普森公 式,举例说明。 3.试说明高斯-勒让德积分、牛顿-柯特斯的区别和联系。 4.时间测试下,请对自己编写的龙贝格算法的执行效率进行分析,说明 对分次数和计算执行时间的关系? 二、完成下列计算,写出代码 1.完成复合梯形、复合辛普森求积公式,用变步长、事后误差估计的方 法完成 P145 例题 6.3.1 对应表 6-3 的计算,课后作业题 7。 2.完成龙贝格积分,计算 P150 例题 6.4.2 对应的表 6-5,按例题列表格 式显示数值,完成课后作业题 8. 【实验结果】
2.4 8.03014
2.6 10.46675
分别用复合梯形公式和复合辛普生公式计算积分
2.6
1.8
f ( x)dx 的近似值。
4、 、使用复合梯形公式和复合辛普生公式计算积分 多少个节点上的函数值?
3
1
e x sin xdx ,要求误差不超过 104 ,不计舍入误差,问各需计算
5、用龙贝格方法计算积分
y x y y (0) 1
并将计算结果与准确解比较。
(0 x 1)
3、取步长 h
0.2 ,用标准四阶龙格—库塔方法解初值问题
y x y y (0) 1
龙贝格+实验报告
![龙贝格+实验报告](https://img.taocdn.com/s3/m/76a605d65022aaea998f0f25.png)
实验三 龙贝格求积分一、 实验目的用算法实现龙贝积分运算,求解I=∫01X 3/2dx 的积分二、 实验原理三、 算法设计与程序流程图算法设计:(先假定所求积分二分最大次数次数为20)1、 先求T[k][0]2、 再由公式).,2,1(141144)(1)1(1)( =---=-+-k T T T k m m k m m mk m 求T[i][j]3、 在求出的同时比较T[k][k]与T[k-1][k-1]的大小,如果二者之差的绝对值小于1e-5,就停止求T[k][k];此时的k 就是所求的二分次数,而此时的T[k][k]就是最终的结果4、 打印出所有的T[i][j];程序流程图:NYN 开始N=20,a=0,b=1求T[0][0]K=0T[k][0] = 0.5*T[k-1][0] + h*s;m=0K++,h=h/2;n=2k-1;s=0m=m+1s+=(*f)(a+(2*m-1)*h);k=Nm<=n 求T[i][j],k=0NNY四、 源程序#include<stdio.h>#include<stdlib.h>#include<math.h>#define a 0 //区间下限#define b 1 //区间上限#define N 20 //最大加速次数double f(double x){return(pow(x,1.5));}void main(){double h=b-a;int i,j,k,m,n;double T[N][N],s; T[0][0]=h*((*f)(a)+(*f)(b))/2.0; for(k = 1;k<N;k++){h = (b-a) * pow(0.5,k);n = (int)pow(2,k-1);s=0.0;for(m=1;m<=n;m++){s+=(*f)(a+(2*m-1)*h);K++输出 T[k][m]=pow(4,m)/(pow(4,m)-1)*T[k][m-1]-1/(pow(4,m)-1)*T[k-1][m-1] m++ m=0m<=k fabs(T[k][k]-T[k-1][k-1])<1e-5结束}T[k][0] = 0.5*T[k-1][0] + h*s;}for(k=1;k<N;k++){for(m=1;m<=k;m++){T[k][m]=pow(4,m)/(pow(4,m)-1)*T[k][m-1]-1/(pow(4,m)-1)*T[k-1][m-1];}if(fabs(T[k][k]-T[k-1][k-1])<1e-5){break;}}printf("R=%.6lf\n",T[k][k]);printf("k=%d \n",k);printf("T:\n");for(i = 0;i<=k;i++){for(j = 0;j<=i;j++)printf("%.6lf ",T[i][j]);printf("\n");}}五、程序运行六、结果分析如上所示的结果与课本中求得的结果完全一样,表明程序编写正确,且符合要求,事实上,只要再将所求值的精度设置得更小,则所求的结果将更加准确,最终将无限接近于标准值,由上表也可以看出用龙贝格积分法求函数的积分值在精度比较低的情况下就能求到很准确的值!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、Romberg 积分法
1.变步长Romberg 积分法的原理
复化求积方法对于提高精度是行之有效的方法,但复化公式的一个主要缺点在于要事先估计出部长。
若步长过大,则精度难于保证;若步长过小,则计算量又不会太大。
而用复化公式的截断误差来估计步长,其结果是步长往往过小,而且''()f x 和(4)()f x 在区间[,]a b 上的上界M 的估计是较为困难的。
在实际计算中通常采用变步长的方法,即把步长逐次分半(也就是把步长二等分),直到达到某种精度为止,这种方法就是Romberg 积分法的思想。
在步长的逐步分半过程中,要解决两个问题: 1. 在计算出N T 后,如何计算2N T ,即导出2N T 和N T 之间的递推公式; 2. 在计算出N T 后,如何估计其误差,即算法的终止的准则是什么。
首先推导梯形值的递推公式,在计算N T 时,需要计算1N +个点处的函数值在计算出N T 后,在计算2N T 时,需将每个子区间再做二等分,共新增N 个节点。
为了避免重复计算,计算2N T 时,将已计算的1N +个点的数值保留下来,只计算新增N 个节点处的值。
为此,把2N T 表示成两部分之和,即
由此得到梯形值递推公式 因此
由复化梯形公式的截断误差有
若''()f x 变化不大时,即''''12()()f f ηη≈,则有
式(2)表明,用2N T 作为定积分I 的近似值,其误差大致为21
()3
N N T T -,
因此其终止条件为
其中ε是预先给定的精度。
积分公式
将上述方法不断推广下去,可以得到一个求积分的序列,而且这个序列很快收敛到所求的定积分。
记
(0)N N T T =,将区间N 等分的梯形值。
(1)N N T S =,将区间N 等分的Simpson
(2)N N T C =,将区间N 等分的Cotes 。
(3)N N T R =,将区间N 等分的Romberg 。
由其可构造一个序列(){}k N T ,次序列称为Romberg 序列,并满足如下递推关系: 以上递推公式就是Romberg 积分递推公式。
积分程序
1. 置1N =,精度要求ε,1h b a =-;
2. 计算(0)1[()()]2
b a
T f a f b -=+; 3. 置22
N N
h h =,并计算(0)
(0)211((21))222N N N k b a b a T T f a k N N =--=++-∑; 4. 置,2,1;M N N N K ===
5. 计算(1)(1)
2441
k k k k M M
M
k
T T T ---=-; 6. 若 1M =,则转(7);否则置2
M
M =
,1k k =+转(5); 7. 若()(1)11k k T T ε--≤,则停止计算(输出()1k T ),否则转(3)。
积分法的应用
function [T,n] = romb(f,a,b,eps) double R ;
if nargin<4,eps=1e-8; end
h=b-a;R(1,1)=(h/2)*(feval(f,a)+feval(f,b)); n=1;J=0;err=1; while (err>eps)
J=J+1;h=h/2;S=0; for i=1:n
x=a+h*(2*i-1); S=S+feval(f,x); end
R(J+1,1)=R(J,1)/2+h*S; for k=1:J
R(J+1,k+1)=(4^k*R(J+1,k)-R(J,k))/(4^k-1); end
err=abs(R(J+1,J+1)-R(J+1,J));
n=2*n;
end
R;
其中输入项:f为被积函数,ab为积分区间的端点值,ep为积分精度;输出项:T 是逐次积分表值,n是迭代次数,R是最后积分值。
程序调用
可以将被积分函数编成函数文件,也可以直接使用内联函数来表示被积分函数,示例如下:
>>f=inline('1/(1+x.^2)','x');
>> [T,n,R]=romb(f,2,9,1e-9)
运行后得出其迭代次数,最终积分结果以及龙贝格积分矩阵如表2-1所示,
迭代次数N=64,最终的积分值R=.
表2-1 龙贝格积分矩阵
3.课本例题求解
1 当迭代精度ep=1e-9的条件下,迭代次数N=32,迭代结果R=
表2-2 式1对应的龙贝格积分矩阵
2 当迭代精度ep=1e-9的条件下,迭代次数N=32,迭代结果R=.
表2-3 式2对应的龙贝格积分矩阵
3对于积分1
0ln(1)x
dx
x
+
⎰,由于积分下限0为其奇点,理论上无法进行数值积分,
本题中近似取下限为1*10-9来进行计算。
当迭代精度ep=1e-9的条件下,迭代次数N=16,迭代结果R=.
表2-4 式3对应的龙贝格积分矩阵
4.对于积分2
0sin()x
dx x
π
⎰,同样积分下限0为积分函数的奇点,理论上无法进行数
值积分运算,本题中仍取积分下限近似为1*10-9进行计算。
当迭代精度ep=1e-9的条件下,迭代次数N=16,迭代结果R=.
表2-5 式4对应的龙贝格积分矩阵。