天津大学科学计算选讲第一次作业高阶常微分方程的MATLAB数值求解学.doc

天津大学科学计算选讲第一次作业高阶常微分方程的MATLAB数值求解学.doc

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

天津大学 科学计算选讲 第一次作业 高阶常微分方程的MATLAB数值求解 学生: 徐世林 学号: 1011202008 学院:精密仪器与光电子工程学院 专业: 光电子技术(博士) 日期: 2012年月日 高阶常微分方程的MATLAB数值求解 1.理论问题 高阶线性常系数微分方程可用特征根法求得相应齐次微分方程的基本解,再用常数变异法求特解。一阶常微分方程与高阶微分方程可以互化,已给一个阶方程 设,可将上式化为一阶方程组 反过来,在许多情况下,一阶微分方程组也可化为高阶方程。所以一阶微分方程组与高阶常微分方程的理论与方法在许多方面是相通的。 考虑一阶常微分方程初值问题 其中所谓数值解法,就是寻求在一系列离散节点上的近似值称为步长,通常取为常量。 最简单的数值解法是Euler法,Euler法的思路极其简单:在节点出用差商近似代替导数 这样导出计算公式(称为Euler格式) 也能求解各种形式的微分方程,Euler法也称折线法。 Euler方法只有一阶精度,改进方法有二阶Runge-Kutta法、四阶Runge-Kutta法、五阶Runge-Kutta-Felhberg法和先行多步法等,这些方法可用于解高阶常微分方程(组)初值问题。 2. MATLAB求解器solver 在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为求解器solver,其一般格式为: [T,Y]=solver(odefx,t,y0)。 该函数表示在区间t=[t0,tf]上,用初始条件y0求解显式常微分方程。solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb 大部分场合的首选算法 ode23 非刚性 单步算法;2、3阶Runge-Kutta方程;累计截断误差达 使用于精度较低的情形 ode113 非刚性 多步法;Adams算法;高低精度均可到 计算时间比 ode45 短 ode23t 适度刚性 采用梯形算法 适度刚性情形 ode15s 刚性 多步法;Gears反向数值微分;精度中等 若 ode45 失效时,可尝试使用 ode23s 刚性 单步法;2阶 Rosebrock 算法;低精度 当精度较低时,计算时间比 ode15s 短 ode23tb 刚性 梯形算法;低精度 当精度较低时,计算时间比 ode15s 短 3.例子 求解描述振荡器的经典的 Ver der Pol 微分方程 分析:令则 先编写函数文件verderpol.m: function xprime = verderpol(t,x) global mu; xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)]; 再编写命令文件vdp1.m: global mu; mu = 7; y0=[1;0] [t,x] = ode45(verderpol,[0,40],y0); x1=x(:,1);x2=x(:,2); plot(t,x1) 图形结果为图. 1

文档评论(0)

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

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

1亿VIP精品文档

相关文档