matlab编程基础第7讲--数值微积分、多项式

matlab编程基础第7讲--数值微积分、多项式

ID:20724641

大小:138.00 KB

页数:22页

时间:2018-10-15

matlab编程基础第7讲--数值微积分、多项式_第1页
matlab编程基础第7讲--数值微积分、多项式_第2页
matlab编程基础第7讲--数值微积分、多项式_第3页
matlab编程基础第7讲--数值微积分、多项式_第4页
matlab编程基础第7讲--数值微积分、多项式_第5页
资源描述:

《matlab编程基础第7讲--数值微积分、多项式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MATLAB编程基础 之数值微积分、多项式第七讲8/12/202113.7MATLAB数值积分与微分3.7.1差分和偏导数1.差分在MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数diff,其调用格式为:DX=diff(X):计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,…,n-1。DX=diff(X,n):计算X的n阶向前差分。例如,diff(X,2)=diff(diff(X))。DX=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(缺省状态),按

2、列计算差分;dim=2,按行计算差分。8/12/20212例1差分运算示例命令如下:A=[123456789101112131415161718];%生成1维矩阵A1=reshape(A,6,3)'%转换为3×6维矩阵A1=123456789101112131415161718B1=diff(A1)%求1维1阶差分B1=666666666666B2=diff(A1,1,2)%求2维1阶差分B2=111111111111111B3=diff(A1,2)%求1维2阶差分B3=0000008/12/202132.梯

3、度和偏导数二元及多元函数F(x,y,…)的求导FX=gradient(F)[FX,FY]=gradient(F)[…]=gradient(F,h)8/12/20214例2求二元函数的偏导数%生成二元函数v=-2:0.2:2;[x,y]=meshgrid(v);z=x.*exp(-x.^2-y.^2);%绘制曲面,如图3-4所示figure(1)mesh(x,y,z);[px,py]=gradient(z,.2,.2);%求偏导数figure(2)contour(v,v,z)%绘制等高线,如图3-5所示hold

4、onquiver(v,v,px,py)%绘制矢量场图,小箭头表示梯度holdoff8/12/20215数值积分数值积分基本原理求解定积分的数值方法多种多样,如简单的梯形法、辛普生(Simpson)法、牛顿-柯特斯(Newton-Cotes)法等都是经常采用的方法。它们的基本思想都是将整个积分区间[a,b]分成n个子区间[xi,xi+1],i=1,2,…,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。8/12/202163.7.2一元函数的数值积分数值积分的实现方法1.变步长辛普生(Simp

5、son)法(精度较高,较常使用)基于变步长辛普生法,MATLAB给出了quad函数来求定积分。该函数的调用格式为:[I,n]=quad('fname',a,b,tol,trace)其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。8/12/20217函数部分functionf=quad1(x)f=1./(x.^

6、3-2*x-5);%编制函数m文件调用命令Q=quad('quad1',0,2)%在同一目录下,计算积分值Q=-0.46058/12/20218求定积分。(1)建立被积函数文件fesin.m。functionf=fesin(x)f=exp(-0.5*x).*sin(x+pi/6);(2)调用数值积分函数quad求定积分。[S,n]=quad('fesin',0,3*pi)S=0.9008n=778/12/202192.自适应Lobatto法(精度较高,最常使用)q=quadl(fun,a,b)q=quadl(

7、fun,a,b,tol)%采用内联函数形式,第二个参数为变量例3-25求Q=sin2x+cosx从2*pi到0的定积分f=inline('sin(2*x)+cos(x).^2','x');Q=quadl(f,0,2*pi)%求取积分值Q=3.1416训练任务:请采用编制m函数求该函数积分8/12/2021103.7.3多重数值积分使用MATLAB提供的dblquad函数就可以直接求出上述二重定积分的数值解。该函数的调用格式为:I=dblquad(f,a,b,c,d,tol,trace)该函数求f(x,y)在[

8、a,b]×[c,d]区域上的二重定积分。参数tol,trace的用法与函数quad完全相同。8/12/202111计算二重定积分(1)建立一个函数文件fxy.m:functionf=fxy(x,y)globalki;ki=ki+1;%ki用于统计被积函数的调用次数f=exp(-x.^2/2).*sin(x.^2+y);(2)调用dblquad函数求解。globalki;ki=0;I=dblquad(

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

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

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