数值分析方法第六章资料.ppt

  1. 1、本文档共94页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter 5 MATLAB中的数值微分 数值微分的实现 在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))。 例 设x由[0,2π]间均匀分布的10个点组成,求sinx的1~3阶差分。 命令如下: X=linspace(0,2*pi,10); Y=sin(X); DY=diff(Y); %计算Y的一阶差分 D2Y=diff(Y,2); %计算Y的二阶差分,也可用命令diff(DY)计算 D3Y=diff(Y,3); %计算Y的三阶差分,也可用diff(D2Y)或diff(DY,2) 例 用不同的方法求函数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求导数dp dpx=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,-); %作图 §2 数值积分 在工程技术和科学研究中,常常遇到如下情况: 1.??? f(x)的结果复杂,求原函数困难。 2.??? f(x)的原函数不存在,或不能用初等函数表示。 3.??? f(x)无函数式,只有函数表。 数值积分雏形?? 数格子 插值型求积公式 利用插值多项式来构造求积公式:在积分区间[a, b]上取一组点 用f(x)的n次插值多项式 来近似代替被积函数f(x) 数值积分公式的余项 几个常用的求积公式的代数精度 1.梯形公式的代数精度 2.辛普森公式的代数精度 且满足 梯形公式 当n=1, x0=a, x1=b时,有 辛普森公式 当n=2, x0=a, x1=(a+b)/2, x2=b时,有 实际计算中,当积分区间较大时,直接使用这些积分公式精度难以保证。 为了提高计算精度,采用复合求积的方法。 将区间[a,b]适当分割成若干个子区间,对每个子区间使用求积公式,构成所谓的复化求积公式,这是提高积分精度的一个常用的方法。 MATLAB数值积分 基于变步长辛普生法,MATLAB给出了quad函数来求定积分。 该函数的调用格式为: [I,n]=quad(fname,a,b,tol,trace) fname是被积函数名。 a和b分别是定积分的下限和上限。 tol用来控制积分精度,缺省时取tol=0.001。 trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。 返回参数I即定积分值,n为被积函数的调用次数。 MATLAB数值积分实例 (1) 建立被积函数文件fesin.m。 function f=fesin(x) f=exp(-0.5*x).*sin(x+pi/6); (2) 调用数值积分函数quad求定积分。 [S,n]=quad(fesin,0,3*pi) S = 0.9008 n = 77 quad8函数 基于牛顿-柯特斯法,MATLAB给出了quad8函数来求定积分。 该函数的调用格式为: [I,n]=quad8(fname,a,b,tol,trace) 参数的含义和quad函数相似,tol的缺省值取10-6。 该函数可以更精确地求出定积分的值, 一般情况下函数调用的步数明显小于quad函数,从而保证能以更高的效率求出所需的定积分值。 例 求定积分。 (1) 被积函数文件fx.m。 function f=fx(x) f=x.*sin(x)./(1+cos(x).*cos(x)); (2) 调用函数quad8求定积分。 I=quad8(fx,0,pi) I = 2.4674 例 分别用quad函数和quad8函

文档评论(0)

四娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档