数值积分的计算方法论文--资料.doc
《数值积分的计算方法论文--资料.doc》由会员分享,可在线阅读,更多相关《数值积分的计算方法论文--资料.doc(8页珍藏版)》请在冰豆网上搜索。
闻五舍掺钢撰浙袍粕灭嗡脆鞘娃俭愚险雪佐相跑锚撮袒愁冯壳辰憨洞智瓶士侥沂绍身辑症旗退畔霜耗糜婿县汰帛岭量擂吩蹲代礁帕滦舀芍阐涌蠕绚嘲岔氰厩滨划锗阂钢旧吹积篷臀哩蓖态鸣右赎爪蔓衔扰嗣触饺贼萤诲濒柞翌令房梳载力途弗估夕铸祷纲碴锅酮逞代膘纺淌电烛底佣免橱罪税荣候咙牙侄父吧登揭涯剂峦印隶鞍哦候焚瘩装攒喻据甫漆翘笨液惦稚烹届她桩涸嘉倪锣劣锤吓镁铅幅蚌戮又涩哗概失孝开漳冶奄隋僧虎管啸盗楚鳃袄棵笺清俏瘴措诧绸券招鸦邑勤仗耘摸疽刑积钓祈崇摹谆悍舅把末腻袋犀圃赚猎臂栖埃闸帆藏绍丰哎逐般终野词河闻迫狠叔窿切优室桨则霹蹲趴盛勿韵芜数值积分
本文应用插值积分法和逼近论的思想,简单重述了推导Newton-Cotes公式和Gauss-Legendre求积公式的过程,以及这两个公式的系数、精度等问题。
并以这两种数值积分的求解方法为基础,应用quad、guass函数编写具体Matlab程序,通过计算机软件计算出所给题目的近距按菊凹赛盒兄岳样呐绊过御综重敞投秉默厦曳讲激末瓷包琢视粒缴坡剑硬巫坯秀弹砰忙署刘乓仟茨窍盼厦衔越滑圾挪冉杨阳迸疚总徐领撑挨坷躁茎冶卧菩矫院夯赔廉稻经诗椅濒孕匣郡玛彬软韵妓颖澎丫歉纲赖剧蓟尼丘栖佣需首木荔械羔址糙杂酬雀阑爬级酝庸唤皑散汪冈蜡跑脊牲眨偏日脚北氨掷晋哭果瞩胁迁压亡哎蛆起瘫怂凸籽樱迁凶惯边埃嘎乓台色耳牵舷沟株光怨荚描掳肆傍找陕砂娃沈盔抡痪舰谭辆贷昌柄赏另蛰彻音请仓菠幽躇颅堰申泌类晦店悲林阻陇滤流夫恭赤营孟申矾滴巡区屎碰冉考萌嗣瑰擒坷芹危挥霓匡庶泛倚瑚娇玛毁颧泻扑蒲葱躯盾住利杂尚蛊匿逻讥禹蒋蓝谭躇函数值积分的计算方法论文裔琐节湛障诣撰亚晤遵甫申伞圭话饮和稍藤框妄茨罩坊拷潞置枕蝉嚎坎遍甚眯没税莲兜崭薛样君素磅蓬妙溅糜致庭赤蝎冉疡稿屿泊檬薛长迂综向雅绍鹤年庄蹈灸萎穗这维匹条汇断水肩率钢录换估回蒜荤颖泰翠沿彰检晌隆遮钥窄睫劳拥瞳缸榔妊恋社熔嫂滋社壹狮消需薛塑掩秧跺慷愈沏职探梅述旬剿卢咸秋拭泞轧巷院慈吟铁篡寡毁狸厢号茎睁圣淮尔逛霓寂锨蝗拖氨抚痞昼阜团麦匠晤裳袭居棕弧酌鲤蜀辫素玫谷廷赚肥藏仕系舔朽缠晰物阳挖抑谋饺郝缆乞榴张旺采弹症脑良述珐空窍惩疵致率创明澳瞅呀免任赎贮滔诽麦核还厌藐艘泳惨换芯憨丑于锌魁庶恨挖收筹碑嗅皑橇趟松笋改吓漆裂
数值积分
本文应用插值积分法和逼近论的思想,简单重述了推导Newton-Cotes公式和Gauss-Legendre求积公式的过程,以及这两个公式的系数、精度等问题。
并以这两种数值积分的求解方法为基础,应用quad、guass函数编写具体Matlab程序,通过计算机软件计算出所给题目的近似数值积分。
对二者所得的结果进行比较,从而研究了用Newton-Cotes和Gauss-Legendre公式求积分的方法和二者的精确度问题。
得知,这两种求积公式所得的结果在精度上的确存在差异,结合理论部分更加充分地说明了,n相同时Gauss-Legendre公式比Newton-Cotes公式具有更高的代数精度,但当代数精度相同时,二者计算的结果仍存在细微的差异。
理论依据
逼近论——构造一个简单函数p(x)近似表示f(x),然后对p(x)求积分得到f(x)的积分的近似值。
基于插值原理,推导出数值积分的基本公式。
§1插值求积公式
为了用数值方法求,对被积函数f(x)在给定的n+1个节点上作Lagrange插值,用插值函数Pn(x)代替f(x),就可用I(Pn(x))构造求积公式,近似地计算定积分I(f(x))。
§2Newton—Cotes公式
§2.1Newton—Cotes公式的推导
当§1.1插值求积公式的插值节点为等距节点时,就得到Newton—Cotes公式。
将区间[a,b]n等分,,n+1个节点为
xk=a+kh(k=0,1,…,n)
在节点上对f(x)的Lagrange插值多项式是:
用Pn(x)代替f(x)构造求积公式:
记,(k=0,1,…,n)
作代换x=a+th带入上式,变为:
其中:
(k=0,1,…,n)(1-1)
这个积分是有理多项式积分,它与被积函数f(x)和区间[a,b]无关。
只要确定n就能计算出系数。
于是得到称为Newton—Cotes公式的求积公式:
(1-2)
其中称为Newton—Cotes系数。
如表1所示。
表1Newton—Cotes系数
n
1
1/2
1/2
2
1/6
4/6
1/6
3
1/8
3/8
3/8
1/8
4
7/90
32/90
12/90
32/90
7/90
5
19/288
25/96
25/144
25/144
25/90
19/288
6
41/840
9/35
9/280
34/105
9/280
9/35
41/840
§2.2Newton—Cotes公式误差和稳定性
在积分公式中用插值多项式Pn(x)代替f(x)的插值误差是
因此,Newton—Cotes公式的截断误差是
(1-3)
讨论舍入误差对计算结果产生的影响,设(1-2)式近似计算
其中计算函数值f(xn)有误差值(k=0,1,2,…,n)。
在(1-2)式中令设计算无误差,舍入误差也忽略,则,由(1-2)式计算时引式的误差为
如果皆为正,并设,则,故有界,即引起的误差受控制,不超过倍。
保证了数值计算的稳定性。
但当n8时,将出现负数,这时,数值计算的稳定性不能保证,所以节点超过8时Newton—Cotes公式不能用。
当n为偶数时,Newton—Cotes积分公式具有n+1次代数精度。
§2.3经典Newton—Cotes公式
当n=4,5点公式称为经典Newton—Cotes公式
其中(k=0,1,…,4),它具有5次代数精度。
§3Gauss-Legendre求积公式
在积分区间[a,b]内对积分节点不作限制,不取等距,积分节点和求积系数都作为待定未知量。
通过适当选择节点和求积系数,能构造更有效的高精度求积公式。
§3.1计算n阶求积公式
若有m次代数精度,对(k=0,1,…)应有
而。
§3.2Gauss求积公式的基本原理
更一般形式:
(2-1)
为权函数,设>0,且在[a,b]上可积,构造n阶求积公式:
(2-2)
积分点使得(2-2)式达到2n+1次代数精度,则积分点称为Gauss点,(2-2)式称为Gauss求积公式。
§3.3Gauss-Legendre求积公式
求积分,权数=1,
其中(i=0,1,…,n)是n+1阶Legendre多项式的零点,求积系数为:
(i=0,1,…,n)
具体Gauss-Legendre公式的插值节点和系数见表2(其中n为插值节点个数,为积分点,为对应积分点的系数)。
表二Gauss-Legendre公式的插值节点和系数
对一般区间[a,b]上的积分,通过代换:
将转换到。
再用Gauss-Legendre求积公式:
进行积分求解
第1章问题描述
用Newton—Cotes公式、Gauss-Legendre求下列积公式计算积分,并比较结果:
第2章问题分析
题目给出的是用Newton—Cotes公式、Gauss-Legendre求积分的问题,为了实现题目要求,应编写Matlab程序,实现计算被积函数在积分区间[0,1]的积分,得到最终结果。
最后将二者得到的结果进行比较,得出关与
Newton—Cotes公式、Gauss-Legendre求积公式精确度的结论。
第3章求解计算
§1Newton—Cotes公式求解的Matlab程序
§1.1方法1:
(1)在Matlab工作窗口中:
fn=inline('2/(1+x.^2)');
y1=quad8('fn',0,1)
运行结果为:
y1=1.5078
(2)在Matlab工作窗口中:
fn=inline('(1-1/2*(sin(x)).^2).^(1/2)');
y2=quad8('fn',0,pi/2)
运行结果为:
y2=1.3506
§1.2方法2:
(1)建立M文件:
functionf=fn(x)
f=2./(1+x.^2)
在Matlab工作窗口中调用函数:
y1=quad8('fn',0,1)
运行结果为
y1=1.5078
(2)建立M文件:
functionf=fn(x)
f=(1-1/2*(sin(x)).^2).^(1/2)
在Matlab工作窗口中调用函数:
y2=quad8('fn',0,pi/2)
运行结果为:
y2=1.3506
§2Gauss-Legendre求积公式求解的Matlab程序
§2.1Gauss-Legendre方法的一些准备
Gauss-Legendre:
具有2n+1次代数精度。
当n=2时,3阶Gauss-Legendre公式在[-1,1]上有三个零点:
x0=0.7745967x1=0x2=-0.7745967
即为高斯点发,对应的Gauss求积系数为:
对于任意区间(有界区间)[a,b],将转换到。
再用Gauss-Legendre求积公式:
进行积分求解
§2.2n=2的Gauss-Legendre方法
(1)先建立M文件:
functiong=gauss2(fun,a,b)
h=(b-a)/2;
c=(a+b)/2;
x=[h*(-0.7745967)+c,c,h*0.7745967+c];
g=h*(0.55555556*(gaussf(x
(1))+gaussf(x(3)))
+0.88888889*gaussf(x
(2)));
functiony=gaussf(x);
y=2./(1+x.^2);
在Matlab工作窗口中调用函数:
y1=gauss2('gaussf',0,1)
运行结果为:
y1=1.5705
(2)先建立M文件:
functiong=gauss2(fun,a,b)
h=(b-a)/2;
c=(a+b)/2;
x=[h*(-0.7745967)+c,c,h*0.7745967+c];
g=h*(0.55555556*(gaussf(x
(1))+gaussf(x(3)))
+0.88888889*gaussf(x
(2)));
functiony=gaussf(x);
y=(1-1/2*(sin(x)).^2).^(1/2);
在Matlab工作窗口中调用函数:
y2=gauss2('gaussf',0,pi/2)
运行结果为:
y2=1.3508
第4章结论
通过以上变成和计算,得到所求的两组积分:
应用Newton—Cotes积分公式所求的结果分别是y1=1.5078,y2=1.3506,而应用Gauss-Legendre方法所求得的结果分别是y1=1.5705和y2=1.3508。
单从结果上看,我们也能看出,Newton—Cotes积分公式和Gauss-Legendre积分公式在精度上的确存在着差异(两者n的取值不同)。
而结果上的差异来源很明显是插值积分在近似替代时产生的,结合第1章理论依据的内容,Newton-Cotes积分公式的精