第七章MATLAB微积分数值计算综述.pptVIP

  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文档。上传文档
查看更多
5 积分曲线 %% for循环 for n=0:20 x1(n+1)=0.1*n; y1(n+1)=quad(@humps,0,x1(n+1)); end %% 函数命令 dx=0.1; x2=0:dx:2; y2=cumtrapz(humps(x2))*dx; %x=0:dx:2-dx %cumsum(humps(x2))*dx; plot(x1,y1,x2,y2,r,linewidth,2) 结果完全重合 7.2.6 三重定积分的数值求解 求可先把两个自变量当做常数,求关于第三个自变量的积分;然后求第二个自变量的积分,最后再求第三个自变量的积分。 7.3.5 求解多变量一阶常微分方程组。 例:求解下面的混沌理论的洛仑兹方程。 x(0)=0; y(0)=0; z(0)=0; 编写lorfun.m如下: function ydot=lorfun(t,y) ydot=[-8/3*y(1)+y(2)*y(3); -10*y(2)+10*y(3); -y(2)*y(1)+35*y(2)-y(3)]; 建立lorfun.m文件 [t,y]=ode23(@lorfun,[0,20],[0,0,eps]); plot3(y(:,1),y(:,2),y(:,3)) grid on 7.3.6 求解高阶常微分方程 可以先把其转化为一阶常微分方程组 例 令 则 首先编写vdp.m如下: function fy=vdp(x,y) %注意表示一个微分方程组的函数必须有自变量和因变量两个输入变量(向量) 。 fy=@(x,y)[y(2);2*(1-y(1).^2).*y(2)-y(1)]; 计算微方程组 y0=[1;2]; [x,y]=ode45(fy,[0,30],y0); % x 为程序在计算过程中所取的步长,y(:,1)=y,y(:,2)=y’……y(:,n-1)=y(n-1) plot(x,y,’r’) 用simulink得到相同结果 plot(tout,xout) grid 7.1 数值微分 7.2 数值积分 7.3 常微分方程的数值解法 7.1 数值微分 实际问题常需计算函数的导数或积分值。但很多情况下,函数关系难以准确表示;即使能使用解析式准确表示,表示式却很复杂,不能用于实际计算。本章介绍数值计算导数或积分的实用方法。 7.1.1 差分和差商 自变量 其中步长 因变量 根据导数的定义 其中,?x和?y分别称为自变量x和因变量y的增量,也称之为差分。可以用差分的商 ?y/?x 作微商(导数)的近似。数值微分就是用函数值的线性组合近似函数在某点的导数值。自变量x的步长?x一般取定值。 首先在xi处对函数进行泰勒展开, 根据不同的组合方式可以得到精度不同的差分公式。以函数的一阶导数为例 ,可以看出如果步长足够小,相邻几点的差分值近似相同。 微分公式 表达式 截断误差 两点前向 O(?x) 两点后向 O(?x) 三点中心 O(?x2) 三点前向 O(?x2) 三点后向 O(?x2) 五点中心 O(?x4) …… …………………… …… 精度为O(?X2)的高阶中心差分算法 精度为O(?X4)的高阶中心差分算法 7.1.2 数值微分的实现 在MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数diff和梯度函数gradient。 diff调用格式为: Dy=diff(Y):计算向量Y的向前差分,并把结果赋值给向量Dy Dy(i)=Y(i+1)-Y(i),i=1,2,…,n-1。注意向量Dy元素个数比Y少一个 Dy=diff(Y,n):计算向量Y的n阶向前差分。注意向量Dy元素个数比Y少n个.例如:diff(Y,2)=diff(diff(Y))=DX(i+1)-DX(i)= Y(i+2)-2Y(i+1)+Y(i) , i=1,2 ……n-2。 DX=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(缺省状态),按列计算差分;dim=2,按行计算差分。 差分除以设定的步长即为数值微分——diff(Y,n)/(dy).^n A=pascal(4) A = 1 1 1 1 1 2 3

文档评论(0)

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

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

1亿VIP精品文档

相关文档