数值积分的matlab实现.doc

数值积分的matlab实现.doc

ID:51845290

大小:346.50 KB

页数:9页

时间:2020-03-16

数值积分的matlab实现.doc_第1页
数值积分的matlab实现.doc_第2页
数值积分的matlab实现.doc_第3页
数值积分的matlab实现.doc_第4页
数值积分的matlab实现.doc_第5页
资源描述:

《数值积分的matlab实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验10数值积分实验目的:1.了解数值积分的基本原理;2.熟练掌握数值积分的MATLAB实现;3.会用数值积分方法解决一些实际问题。实验内容:积分是数学中的一个基本概念,在实际问题中也有很广泛的应用。同微分一样,在《微积分》中,它也是通过极限定义的,由于实际问题中遇到的函数一般都以列表形式给出,所以常常不能用来直接进行积分。此外有些函数虽然有解析式,但其原函数不是初等函数,所以仍然得不到积分的精确值,如不定积分。这时我们一般考虑用数值方法计算其近似值,称为数值积分。10.1数值微分简介设函数在可导,则其导数为(10.1)如果函数以列表形式给出(见表

2、10-1),则其精确值无法求得,但可由下式求得其近似值(10.2)表10-1…………一般的,步长越小,所得结果越精确。(10.2)式右端项的分子称为函数在的差分,分母称为自变量在的差分,所以右端项又称为差商。数值微分即用差商近似代替微商。常用的差商公式为:(10.3)(10.4)(10.5)其误差均为,称为统称三点公式。10.2数值微分的MATLAB实现MATLAB提供了一个指令求解一阶向前差分,其使用格式为:dx=diff(x)其中x是维数组,dx为维数组,这样基于两点的数值导数可通过指令diff(x)/h实现。对于三点公式,读者可参考例1的M函

3、数文件diff3.m。例1用三点公式计算在1.0,1.2,1.4处的导数值,的值由下表给出。1.01.11.21.31.40.25000.22680.20660.18900.1736解:建立三点公式的M函数文件diff3.m如下:functionf=diff3(x,y)n=length(x);h=x(2)-x(1);f(1)=(-3*y(1)+4*y(2)-y(3))/(2*h);forj=2:n-1f(j)=(y(j+1)-y(j-1))/(2*h);endf(n)=(y(n-2)-4*y(n-1)+3*y(n))/(2*h);在MATLAB指令

4、窗中输入指令:x=[1.0,1.1,1.2,1.3,1.4];y=[0.2500,0.2268,0.2066,0.1890,0.1736];diff3(x,y)运行得各点的导数值为:-0.2470,-0.2170,-0.1890,-0.1650,-0.0014。所以在1.0,1.2,1.4处的导数值分别为-0.2470,-0.1890和-0.0014。对于高阶导数,MATLAB提供了几个指令借助于样条函数进行求导,详细使用步骤如下:step1:对给定数据点(x,y),利用指令pp=spline(x,y),获得三次样条函数数据pp,供后面ppval等

5、指令使用。其中,pp是一个分段多项式所对应的行向量,它包含此多项式的阶数、段数、节点的横坐标值和各段多项式的系数。step2:对于上面所求的数据向量pp,利用指令[breaks,coefs,m,n]=unmkpp(pp)进行处理,生成几个有序的分段多项式pp。step3:对各个分段多项式pp的系数,利用函数ppval生成其相应导数分段多项式的系数,再利用指令mkpp生成相应的导数分段多项式step4:将待求点xx代入此导数多项式,即得样条导数值。上述过程可建立M函数文件ppd.m实现如下:functiondy=ppd(pp)[breaks,coef

6、s,m]=unmkpp(pp);fori=1:mcoefsm(i,:)=polyder(coefs(i,:));enddy=mkpp(breaks,coefsm);于是,如果已知节点处的值x,y,可用下面指令计算xx处的导数dyy:pp=spline(x,y),dy=ppd(pp);dyy=ppval(dy,xx);例2基于正弦函数的数据点,利用三点公式和三次样条插值分别求导,并与解析所求得的导数进行比较。解:编写M脚本文件bijiao.m如下:h=0.1*pi;x=0:h:2*pi;y=sin(x);dy1=diff3(x,y);pp=splin

7、e(x,y);dy=ppd(pp);dy2=ppval(dy,x);z=cos(x);error1=norm(dy1-z),error2=norm(dy2-z)plot(x,dy1,'k:',x,dy2,'r--',x,z,'b')运行得结果为:error1=0.0666,error2=0.0025,生成图形见图10.1。图10.1三点公式、三次样条插值与解析求导比较图显然利用三次样条插值求导所得误差比三点公式求导小很多,同时由图2.15可知利用三次样条插值求导所得曲线与解析求导曲线基本重合,而三点公式在极值点附近和两个端点附近误差较大,其它点吻合

8、的较好。10.3应用示例:湖水温度变化问题问题:湖水在夏天会出现分层现象,其特点是接近湖面的水的温度较高,越往下水的温度越

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。