[工学]计物05_matlab05_微积分与微分方程数值解.ppt

[工学]计物05_matlab05_微积分与微分方程数值解.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]计物05_matlab05_微积分与微分方程数值解

第五讲 数值微积分方法 ——以微分(差分)、积分的数值法以及微分方程数值解为例介绍数值方法 §5.1 差分 数值微分非常困难。积分描述了一个函数的整体或宏观性质,而微分则描述一个函数在一点处的斜率,这是函数的微观性质。因此积分对函数的形状在小范围内的改变不敏感。而微分却很敏感。一个函数小的变化,容易产生相邻点的斜率的大的改变。 由于微分这个固有的困难,所以尽可能避免数值微分,特别是对实验获得的数据进行微分。在这种情况下,最好用最小二乘曲线拟合这种数据,然后对所得到的多项式进行微分。 *diff* diff(x)——对向量,[x(2:n)-x(1:(n-1))]; diff(X)——对矩阵列的差分[X(2:n,:)-X(1:(n-1),:)]; diff(X,n)——n阶差分; diff(X,n,DIM)——沿DIM维n阶差分; 给定一些描述某函数的数据,MATLAB提供了一个计算其非常粗略的微分的函数。这个函数命名为diff,它计算数组中元素间的差分。 y=f(x)的微分可近似为: 例1 x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1] y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; % data dy=diff(y) ./ diff(x); % compute differences and use array division xd=x(1 : length(x)-1); % create new x axis since dy is shorter than y plot(xd , dy); title(‘ Approximate Derivative Using DIFF ‘) ylabel(‘ dy/dx ‘) , xlabel(‘ x ‘) *gradient*——近似梯度 [fx,fy]=gradient(F)——各差分间隔为1; [fx,fy]=gradient(F,H)——H数量,即各方向差分间隔; [fx,fy]=gradient(F,HX,HY)——H矢量指定差分间隔; [fx,fy,fz]=gradient(F,HX,HY,HZ)——三维梯度; [fx,fy,fz,…]=gradient(F,…)——n维梯度; 例2 v = -2:0.2:2; [x,y] = meshgrid(v); z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.2); contour(v,v,z), hold on, quiver(v,v,px,py), hold off 函数1 quad、quadl、quad8 功能 数值定积分,自适应Simpleson积分法。 格式 q = quad(fun,a,b) %近似地从a到b计算函数fun的数值积分,误差为10-6。若给fun输入向量x,应返回向量y,即fun是一单值函数。 q = quad(fun,a,b,tol) %用指定的绝对误差tol代替缺省误差。tol越大,函数计算的次数越少,速度越快,但结果精度变小。 q = quad(fun,a,b,tol,trace,p1,p2,…) %将可选参数p1,p2,…等传递给函数fun(x,p1,p2,…),再作数值积分。若tol=[ ]或trace=[ ],则用缺省值进行计算。 [q,n] = quad(fun,a,b,…) %同时返回函数计算的次数n … = quadl(fun,a,b,…) %用高精度进行计算,效率可能比quad更好。 … = quad8(fun,a,b,…) %该命令是将废弃的命令,用quadl代替。 例3 fun = inline(‘’3*x.^2./(x.^3-2*x.^2+3)’); Q1 = quad(fun,0,2) Q2 = quadl(fun,0,2) 结果为: Q1 = 3.7224 Q2 = 3.7224 函数2 trapz 功能 梯形法数值积分 格式 T = trapz(Y) %用等距梯形法近似计算Y的积分。若Y是一向量,则trapz(Y)为Y的积分;若Y是一矩阵,则trapz(Y)为Y的每一列的积分;若Y是一多维阵列,则trapz(Y)沿着Y的第一个非单元集的方向进行计算。 T = trapz(X,Y) %用梯形法计

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档