常微分方程数值解与matlab精选.ppt

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

谢谢同学们! * * 实验4-常微分方程数值解 1. 求解常微分方程数值方法介绍 (1)一阶微分方程 求方程(1)的数值解, 就是计算(精确)解在一系列离散点 的近似值. 通常取相等的步长h,于是xn=x0+nh(n=1,2,…). (a) 欧拉方法 基本思想是在小区间[xn,xn+1]上用差商 代替方程(1)左端的导数 而方程右端函数f(x,y(x))中的x取[xn,xn+1]上得某一点, 公式为 (2) 实验4-常微分方程数值解 (b) Runge-Kutta方法 基本思想是用小区间[xn,xn+1]上的若干个点的导数的线性组合代替方程(2)右端的 , 一般形式为 (3) 满足 并使(3)的局部截断误差 -------L级p阶Runge-Kutta公式 实验4-常微分方程数值解 (2) 常微分方程组和高阶方程的数值方法 欧拉方法和Runge-Kutta方法可直接推广到求常微分方程组, 如对 欧拉公式为 Runge-Kutta公式有类似的形式. 对高阶方程 (5) 需先降阶化为一阶常微分方程组, 降阶方法不唯一. 简单、常用的方法是令y1=y,将(5)化为 实验4-常微分方程数值解 2. Runge-Kutta方法的MatLab实现 对微分方程(组)的初值问题 Runge-Kutta方法用MatLab命令实现: [t,x]=ode23(@f,ts,x0,options) %用3级2阶Runge-Kutta公式 [t,x]=ode45(@f,ts,x0,options) %用5级4阶Runge-Kutta公式 命令的输入f是待解方程写成的函数M文件: function dx=f(t,x) Dx=[f1;f2;…;fn]; 实验4-常微分方程数值解 2. Runge-Kutta方法的MatLab实现 举例:仿真模拟著名的Lorenz系统混沌图 其中, 先建立一个函数M文件 function xdot=lorenz(t,x) sigma=10;r=28;row=8/3; xdot=[-sigma*x(1)+sigma*x(2); (r-x(3))*x(1)-x(2); x(1)*x(2)-row*x(3)]; 实验4-常微分方程数值解 2. Runge-Kutta方法的MatLab实现 画出Lorenz系统图 clear all;clf; options=odeset(RelTol,1e-5,AbsTol,1e-5); tspan=[0,100];x0=[1,2,3]; [t,x]=ode45(lorenz,tspan,x0,options); l=length(x(:,1)); a=1;b=l; figure(1) plot3(x(a:b,3),x(a:b,1),x(a:b,2),‘b’);grid on;%画出三维相图 xlabel(z);ylabel(x);zlabel(y); figure(2) subplot(311);plot(t,x(a:b,1)) ;%画三分量演化图 subplot(312);plot(t,x(a:b,2)) subplot(313);plot(t,x(a:b,3)) 实验4-常微分方程数值解 2. Runge-Kutta方法的MatLab实现 作业报告:著名的Duffing系统(描述弹簧系统性质) 其中 类似的,分别画出F=1,2,3,4,6等时的相图 翻阅一些参考书,你能得到一些什么结论? 实验4-常微分方程数值解 3. 实例 问题 缉私艇追击走私船

文档评论(0)

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

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

1亿VIP精品文档

相关文档