数值分析课程设计积分方法的Word文档格式.docx
- 文档编号:21986643
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:16
- 大小:121.18KB
数值分析课程设计积分方法的Word文档格式.docx
《数值分析课程设计积分方法的Word文档格式.docx》由会员分享,可在线阅读,更多相关《数值分析课程设计积分方法的Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
当
为等距节点时得到的插值求积公其代数精度至少为n次,如果适当选取
,有可能使求积公式(2.1)具有2n+1次代数精度,这类求积公式称为高斯求积公式。
为具有一般性,研究带权积分
,这里
为权函数,求积公式为
(2.2)
为不依赖于
的求积系数,
为求积节点,可适当选取
及
,使(2.2)具有2n+1次代数精度。
如果求积公式(2.2)具有2n+1次代数精度,则称其节点
为高斯点,相应求积公式(2.2)称为高斯求积公式。
根据定义要使(2.2)式具有2n+1次代数精度,只要对
,(
),令(2.2)式精确成立,即
.(2.3)
当给定权函数
,求出右端积分,则可由(2.3)式解得
2.2程序实现
建立gaussl.m文件,写入如下内容:
functions=gaussl(a,b,n)
h=(b-a)/n;
s=0.0;
form=0:
(1*n/2-1)
s=s+h*(gaussf(a+h*((1-1/sqrt(3))+2*m))+gaussf(a+h*((1+1/sqrt(3))+2*m)));
end
2.3实例分析
例计算积分
解建立gaussf.m文件以调用gaussl.m文件中的函数,再写入如下内容:
functiony=gaussf(x)
y=sqrt(x)*log(x);
再在命令行中输入:
>
s=gaussl(0,1,20)
得出如下结果:
s=
-0.4456
3高斯-勒让德求积公式
3.1基本原理
在高斯求积公式(2.1)中,若取权函数
,区间为
,则得公式
(3.1)
由于勒让德多项式是区间
上的正交多项式,因此,勒让德多项式
的零点就是求积公式(3.1)的高斯点。
形如(3.1)式的高斯公式称为高斯-勒让德求积公式。
3.2程序实现
建立guasslegendre.m文件,写入如下内容:
function[ql,Ak,xk]=guasslegendre(fun,a,b,n,tol)
ifnargin==1
a=-1;
b=1;
n=7;
tol=1e-8;
elseifnargin==3
n=7;
elseifnargin==4
tol=1e-8;
elseifnargin==2|nargin>
5
error('
TheNumberofInputArgumentsIsWrong!
'
);
end
%计算求积节点
symsx
p=sym2poly(diff((x^2-1)^(n+1),n+1))/(2^n*factorial(n));
tk=roots(p);
%求积节点
%计算求积系数
Ak=zeros(n+1,1);
fori=1:
n+1
xkt=tk;
xkt(i)=[];
pn=poly(xkt);
fp=@(x)polyval(pn,x)/polyval(pn,tk(i));
Ak(i)=quadl(fp,-1,1,tol);
%求积系数
%积分变量代换,将[a,b]变换到[-1,1]
xk=(b-a)/2*tk+(b+a)/2;
%检验积分函数fun的有效性
fun=fcnchk(fun,'
vectorize'
%计算变量代换之后积分函数的值
fx=fun(xk)*(b-a)/2;
%计算积分值
ql=sum(Ak.*fx);
参数说明:
fun:
积分表达式,可以是函数句柄
a,b:
积分上下限
n:
积分阶数
tol:
积分精度,默认1e-6
ql:
积分结果
Ak:
积分系数
xk:
求积节点,满足ql=sum(Ak.*fun(xk))
3.3实例分析
例用4点的高斯-勒让德公式求解定积分
的近似值。
解:
打开guasslegendre.m文件,并在命令行中输入如下内容
symsx;
fun=inline(cos(x)*x^2);
[ql,Ak,xk]=guasslegendre(fun,0,pi/2,4)
得出结果:
ql=
0.4674
Ak=
0.5689
0.2369
0.4786
xk=
0.7854
0.0737
0.3625
1.4971
1.2083
即
的4点的高斯-勒让德积分结果为ql=0.4674。
4复化Simpson求积公式
4.1基本原理
复化Simpson公式是一种比较实用的积分方法,可以给出误差估计。
首先将区间[a,b]N等分,子区间的长度为
(4.1)
在每个子区间上采用Simpson公式,在用Simpson公式时,还要将子区间再二等分,因此有2N+1个分点。
(4.2)
经推导得到,
(4.3)
称为
为复化Simpson值,称(4.3)式为复化Simpson公式。
4.2程序实现
编写复化Simpson求积函数(函数名:
s_quad.m)
FunctionI=S_quad(x,y)
%复化求积公式
%x为被积函数自变量的等距节点;
y为被积函数在节点处的函数值。
n=length(x);
m=length(y);
%积分自变量的节点数应与它的函数值个数相同;
ifn~=m
error('
ThelengthofXandYmustbeequal'
return;
ifrem(n-1,2)~=0%如果n-1不能被2整除,则调用复化公式
节点数不满足要求'
N=(n-1)/2;
h=(x(n)-x
(1))/N;
a=zeros(1,n);
fork=1:
N
a(2*k-1)=a(2*k-1)+1;
a(2*k)=a(2*k)+4;
a(2*k+1)=a(2*k+1)+1;
I=h/6*sum(a.*y);
然后调用s_quad函数,来实现复化Simpson公式法。
建立一个文件SPS,内容如下:
clear
x=input('
请输入积分上下限及点间的间隔(例如-1:
0.1:
1):
y=input('
请输入被积公式:
y='
I=S_quad(x,y);
disp('
得出积分值I='
)
disp(I);
4.3实例分析
例1用复化Simpson公式求积分
,在积分区间中点与点之间的间隔取为
0.1。
运行程序,按照提示输入积分上下限、点间的间隔及被积公式,如下所示:
-1:
1
y=exp(-x.^2)
得出积分值I=
1.4936
真值为:
1.4937
例2计算积分
,将区间8等分。
运行程序,按照提示输入积分上下限、等分后的区间长度及被积公式,如下
所示:
0:
0.125:
y=x./(4+x.^2)
0.1116
0.111572
4.4结果分析
复化Simpson计算所得的结果误差较小,精度较高,更适合科学计算与应用,且公式具有收敛性,稳定性良好。
5数值方法的实际应用
在实际问题中,往往会遇到一些困难。
有些函数找不到用初等函数表示的原函数,例如,对于积分
(5.1)
而言,不存在用初等函数表示的原函数。
而有些函数虽然能找到原函数,但计算过于复杂,例如,椭圆型积分
(5.2)
而有些情况下,只能知道某些点处的函数值,并没有函数的具体表达式。
这些情况,使我们有必要研究积分的数值计算问题。
下面我们就以梯形公式为例做以说明。
所谓梯形求积公式就是用梯形面积来近似曲边梯形面积,利用梯形公式和连续增加[a,b]的区间数来逼近:
(5.3)
第j次循环在
个等距节点处对
采样。
5.1实例分析
卫星轨道是一个椭圆,椭圆周长计算公式是
这里a是椭圆半长轴,c是地球中心与轨道中心(椭圆中心)的距离,记h为近地点距离,H为远地点距离,R=637km为地球半径,则
我国第一颗人造卫星近地点距离h=439km,远地点距离H=2384,试求卫星轨道的周长。
解:
第一步:
先利用Matlab画出被积函数的图形。
输入程序如下:
H=2384;
h=439;
R=6371;
a=(2*R+H+h)/2
c=(H-h)/2
x=0:
pi/2;
y=sqrt(1-(c/a)^2*(sin(x)).^2);
plot(x,y,'
--'
title('
梯形法则'
xlabel('
x'
ylabel('
y'
输出结果:
a=
7.782500000000000e+003
c=
9.725000000000000e+002
输出图形:
图5.1被积函数的图形
第二步:
应用数值积分梯形公式。
首先建立一个名为trapezg.m的M文件,程序如下:
functionI=trapezg(f_name3,a,b,n)
formatlong
%输出用15位数字表示
n=n;
x=a+(0:
n)*h;
f=feval(f_name3,x);
I=h/2*(f
(1)+f(n+1));
ifn>
1I=I+h*sum(f(2:
n));
h1=(b-a)/100;
xc=a+(0:
100)*h1;
fc=feval(f_name3,xc);
plot(xc,fc,'
r'
holdon
plot(x,f)
数值积分梯形效果图'
plot(x,zeros(size(x)),'
.'
n;
plot([x(i),x(i)],[0,f(i)]),
然后建立一个名为f_name3.m的M文件定义函数,Matlab命令如下:
functiony=f_name3(x)
y=sqrt(1-(9.725000e+002/7.782500e+003)^2*(sin(x)).^2)-0.99;
输入命令程序:
>
trapezg('
f_name3'
0,pi/2,30)
输出结果:
ans=
0.00955791054630
图5.2数值积分效果图
积分结果为:
0.00955791054630+0.99=0,99955791054630
第三步:
计算最后结果:
第四步:
考虑误差。
n=1;
fprintf('
\nExtendedTrapezoidalRule\n'
\nnIError\n'
I2=0.00955791054630;
8
n=n*2;
I1=trapezg('
0,pi/2,n);
ifk~=1;
%3.0f%10.8f%10.8f\n'
n,I1,I1-I2);
pause
计算7步输出结果:
ExtendedTrapezoidalRule
nIError
40.009560.00000
80.009560.00000
160.009560.00000
320.00956-0.00000
640.00956-0.00000
1280.009560.00000
2560.00956-0.00000
初始状态图:
图5.3初始状态图
计算一步结果图:
图5.4计算一步结果图
计算四步结果图:
图5.5计算四步结果图
最后计算八步结果图:
图5.6计算八步结果图
5.2结果分析
数值微积分在科学计算上有很大应用,复化梯形公式极大地简化了人们实际生活中的运算复杂性。
不仅算法简明,几何意义明确,而且迭代结果准确科学,具有更好的收敛性和广泛的实用性,且精度高收敛速度快。
本题就是利用复化积分原理,确定轨道,并加以计算,得到高精度的结果。
结论
通过本次课程设计,学习到了如何应用数学软件进行大量的数值求解方法,对该课程的理解进一步加强,对课堂知识的模糊点有了一个清晰的认识。
在本文叙述的几种方法中,高斯-勒让德求积公式可以用较少的节点数得到高精度的计算结果,是现实生活中经常用到的数值积分方法,但是当积分区间较大时,积分精度并不理想。
复化梯形公式收敛且稳定,极大地简化了人们实际生活中的运算复杂性。
参考文献
[1]李庆扬,王能超,易大义.数值分析[M].北京:
清华大学出版社,2008.97-137.
[2]邓东皋,伊小玲.数学分析简明教程[M].北京:
高等教育出版社,2006.100-136.
[3]薛定宇,陈阳泉.高等应用数学问题的MATLAB®
求解[M].北京:
清华大学出版社,2013.35-42.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 课程设计 积分 方法