- 11
- 0
- 约2.05千字
- 约 5页
- 2018-03-09 发布于河南
- 举报
matlab数值分析处理数值积分
数值积分
2考虑如下形式的数值积分公式,
函数:
(1)此形式的数值积分公式中,代数精度最高的是哪个?
(2)现设定,求及,使代数精度尽可能高。
(3)用上述两种公式计算f(x)=在内的积分,比较误差。
(4)用上述两种公式计算f(x)=在内的积分,比较误差。
(5)用上述两种公式构造复合求积公式,计算f(x)=在内的积分,
1问题分析
本大题是关于 求积分问题(详细理论分析,知识积累,我在日志中给了总结)
问题1: 代数精度最高的为 高斯公式: n+1个高斯节点具有2n+1次代数精度。
问题2是求代数精度问题: 为了使其代数精度尽可能高,老师使其未知数变多;
我根据代数精度定义解题:根据p(100)例1;
结果:
=;
因为当时 ;;
所以
所以代数精度为: 5
问题3:代数精度公式在区间[-1,1]:
已知x=[1 ]
Y=[11.7183 5.0361 -4.8327 -10.6321]
ans ==0.3505
误差: -9.0000e-005
高斯勒朗德:在区间[-1,1]
已知:x=[-0.8613,-0.3399,0.3399,0.8611]
Y=[-9.6579, -5.8014, 6.0981, 10.5366]
ans == 0.3502
余项:Rn= =
问题4:当(区间)相同时复合高斯-勒让德求积分的误差比代数精度算法的小。
代数精度公式在区间[0,1]:
用区间变换将区间[0,1]换成[-1,1]
X=1/2t+1/2
已知x=[-1 ]变成[0,(1/2)-1/(5^(1/2)),(1/2)+1/(5^(1/2)),1]
Y=[0, 0.5821, 11.0507, 11.7183]
ans ==11.6471
误差:
-9.0000e-005
高斯勒朗德:在区间[0,1]
用区间变换将区间[0,1]换成[-1,1]
X=1/2t+1/2
将x=[-0.9062, -0.5385, 0, 0.5385, 0.9062]变成[0.0469,0.2308,0.5,0.7692,0.9531]
Y=[ 0.5170, 2.5676, 5.6487, 8.8500, 11.1247]
ans == 11.7183
余项:Rn==
当(区间)相同时复合高斯-勒让德求积分的误差比代数精度算法的小。
问题5
复合代数精度公式:
第一步:由于n10,所以只能将其分成两段:
将[0,10]分成[0,5]和[5,10];
第二步:用区间变换将[0,5]变成[-1,1];
x=;则将x=[-1 ]变成[0,(-5^(1/2))/2+5/2, (5^(1/2))/2+5/2,5]
将[5,10]变成[-1,1];x=;
则y=[0,16.8024, 72.4446,197.4132]
则将x=[-1 ]变成[5, (-5^(1/2))/2+15/2, (5^(1/2))/2+15/2,10]
则y=[197.4132, 653.9083, 5.6157e+003, 2.2125e+004]
=
=2.1024e+004
误差:
K= -1992
对于n=2的情况进行复合积分,就是将区间平分成[0,5]和[5,10]分别进行积分
复合高斯-勒让德求积分
第一步:由于n10,所以只能将其分成两段:
将[0,10]分成[0,5]和[5,10];
第二步:用区间变换将[0,5]变成[-1,1];
x=;则将X=[-0.8611,-0.3399,0.3399,0.8611]变成[0.3472,1.6503,3.3498,4.6528]
则y=[3.8871,20.7115,60.9950,150.4062]
用区间变换将[5,10]变成[-1,1];
x=;则将X=[-0.8611,-0.3399,0.3399,0.8611]变成[5.3472,6.6502,8.3498,9.6528]
则y=[262.4914,838.4409,4.3118e+003,1.5661e+004]
=106.8206+2.38967e+004=2.4004e+004
误差:
Rn=(2.4004e+004)-(2.3016e+004)=988
当(等分的段数)相同时复合高斯-勒让德求积分的误差比代数精度算法的小。
2问题解答:
(1)是高斯公式
(2)
程序:
a=A1+A2+A3+A0=2;
b=-A0+A1*x1+A2*x2+A3=0;
c=A0+A1*x1^2+A2*x2^2+A3=2/3;
d=-A0+A1*x1^3+A2*x2^3+A3=0;
e=A0+A1*x1^4+A2*x2^4+A3=2/5;
f=-A0+A1*x1^5+A2*x2^5+A3=0;
[q,w,e,r,
原创力文档

文档评论(0)