Matlab课程设计--数值微积分.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab课程设计--数值微积分

数值微积分引言在微分中,函数的导数是用极限来定义的,如果一个函数是以数值给出的离散形式,那么它的导数就无法用极限运算方法求得,当然也就更无法用求道方法去计算函数在某点处的导数。一般来说,函数的导数依然是一个函数。设函数f(x)的导数f′(x)=g(x),高等数学关心的是g(x)的形式和性质,而数值分析关心的问题是怎样的计算g(x)在一串离散点X=(x1,x2,…xn)的近似值G=(g1,g2,..gn)以及所计算的近似值有多大的误差。1.??? 数值差分与差商任意函数f(x)在x点的导数是通过极限定义的: f′(x)=lim f(x+h)-f(x)/h f′(x)=lim f(x)-f(x-h)/h f′(x)=lim f(x+h/2)-f(x-h/2)/h?上述式子中,均假设h﹥0,如果去掉上述等式右端的h→0的极限过程,并引进记号:△f(x)=f(x+h)-f(x)▽f(x)=f(x)-f(x-h)δf(x)=f(x+h/2)-f(x-h/2)?称△f(x) ▽f(x)、δf(x)分别为函数在x点的以h(h0)为步长的向前差分、向后差分、向中差分。当步长h充分的小时,有? f′(x)≈△f(x)/h f′(x)≈▽f(x)/h f′(x)≈δf(x)/h和差分一样,称△f(x)/h, ▽f(x)/h,、δf(x)/h分别为函数在x点一h(h0)为步长的向前差商、向后差商、向中差商。当步长h充分的小时,函数f在x点微分接近于函数在该点的任意种差分,而f在点x的导数接近于函数在该点的任意种差商。?2.??? 数值微分的实现有两种方式计算任意函数f(x)在给定点x点数值导数。第一种方式是用多项式或样条函数g(x)对f(x)进行逼近,然后用逼近函数g(x)在点x的导数作为f(x)在点x的导数。第二种方式是用f(x)在点x处的某种差商作为其导数。在MATLAB中,没有直接提供数值导数的函数,只有计算向前差分的函数diff,其调用格式为: Diff(X),输入参数x可为矢量或矩阵。若X为矢量,则返回[X(2)-X(1),X(3)-X(2),…,X(n)-X(n-1)];若X为矩阵,则返回矩阵每行的差分,即[X(2:m,:)-X(1:m-1,:)].通常,diff(X)返回沿X的第一个成对维的差值。 Y=diff(X,n):递归调用diff函数n次,生成n次差分。 Y=diff(X,n,dim): 返回X中第dim维的n次差分或导数值?设计1如下: X=[3 7 5;0 4 2]; Diff(x) ans= -3 -3 -3?设计2如下: x=[3 7 5;0 4 2]; Diff=(x,2) ans=0???????????????? 0???设计3如下:x=[3 7 5;0 4 2];diff=(x,2,1)ans= empty matrix: 0-by-3??设:用不同的方法求函数f(x)的数值导数,并在同一个坐标系中画出f′(x)的图形?程序如下: f=inline(‘sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2’); g=inline(‘(3*x.^2+4*x-1)./sqrt(x.^3+2*x.^2-x+12)/2+1/6./(x+5).^(5/6)+5’); x=-3:0.01:3; p=polyfit(x,f(x),5); ﹪用5次多项式p拟合f(x) dp=polyder(p); ﹪对拟合多项式p求导数dpdpx=polyval(dp,x); ﹪求dp在假设点的函数值dx=diff(f([x,3.01]))/0.01; ﹪直接对f(x)求数值导数gx=g(x); ﹪求函数f的导函数g在假设点的导数plot(x,dpx,x,dx,’.’,x,gx,’-‘); ﹪作图?程序运行后得到图6.3所示的图形。结果表明,用3种方法求得的数值导数比较近似。???????????MATLAB语言提供了计算给定向量差分的函数diff(),其调用的方法是dy=diff(y).假设向量y是{yi},i=1,2,3,…,n构成,则经过diff()函数处理后将得出一个新的向量:{yi+1-yi},i=1,2,3,…,n,显然新

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档