关于ode45函数的说明.docxVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于ode45函数的说明 求解器solver 在求解常微分方程方面,matlab具有丰富的函数,将其统称为solver,其一般格式为: [T,Y]=solver(odefun,tspan,y0) 该函数表示在区间tspan=[t0,t1]上,用初始条件y0求解显式常微分方程y’=f(t,y)。 odefun为显式常微分方程中的f(t,y)函数,tspan为求解区间。要获得问题在制定时刻的解,可以令tspan=t0,t1,t2…(单调递增或递减),y0为初始条件。 非刚性ODE求解命令 求解器solver 功能 说明 ode45 一步算法;4,5阶龙格库塔方程; 大部分尝试的首 累计截断误差(Δx)3 选算法 ode23 一步算法;2,3阶龙哥库塔方程; 适用于精度较低 累计截断误差(Δx)3 的情形 ode113 多步算法;Adams算法;高低精 计算时间比 度均可到10-6~10-3 ode45短 刚性ODE求解命令 求解器solver 功能 说明 ode23t 梯形算法 适度刚性情形 ode15s 多步法;Gear’s反向数值微分; 若ode45失效时,可 精度中等 尝试使用 ode23s一步法;2阶Rosebrock算法; 当精度较低时,计算 精度低 时间比ode15s短 ode23tb 梯形算法;精度低 当精度较低时,计算 时间比ode15s短 [T,Y]=ode45(‘odefun’,tspan,y0) tspan为求解区间 y0为初始条件 (1)根据问题所属学科中的规律、定律、公式,用微分方程与初始条件进行描述。 微分方程 F ?y , y ?, y ??,..., y ? n?, t ?? 0 初始条件 y ?0 ? ? c0 , y ? ?0 ? ? c1 ,..., y ? n?1? ?0? ? cn?1 (2)若微分方程的阶数(n阶)大于1,则作变量 替换: y1 ? y ?, y2 ? y ??,..., yn ?1 ? y?n?1? 把高阶(大于2阶)的方程(组)写成一阶微分方 程组: dy0 dt dy1 dt dy2 dt dyn?1 dt  f 0 ?t , y0 , y1 , y 2 ,..., yn?1 ? f1 ?t , y0 , y1 , y 2 ,..., yn?1 ? f 2 ?t , y0 , y1 , y 2 ,..., yn?1 ? f n ?1 ?t , y0 , y1 , y 2 ,..., yn?1 ? (3)根据(1)和(2)的结果,编写计算导数的M函数文件。 待求解函数m文件: dy0 ? f 0 ?t , y0 , y1 , y 2 ,..., yn?1 ? dt function Dx=myfun(t,x) dy1 ? f1 ?t , y0 , y1 , y 2 ,..., yn?1 ? dt % Dx为返回值,是一个列数组 dy2 ? f 2 ?t , y0 , y1 , y 2 ,..., yn?1 ? % t表示时间 dt % x也是一个数组 自定义函数中的Dx和x与一阶微分方程组 dyn?1 ? f n ?1 ?t , y0 , y1 , y 2 ,..., yn?1 ? dt 的关系是 ? dy0 ? ? y0 ? Dx是一个数组,其第一个元素Dx(1)表示dy0/dt ? ? 第二个元素Dx(2)表示dy1/dt dt ? dy1 ? ? ? 如此类推。 ? ? y1 ? ? ? ? dt ? dy2 ? x ? ? y ? x也是一个数组,其第一个元素x(1)表示y0 Dx ? ? ? 2 ? dt ? ? ? 第二个元素x(2)表示y1 如此类推。 ? ? ? dyn?1 ? ? ? 根据这个关系,很容易可以把一阶微分方程组用 ? ? ?y ?数组Dx与数组x的元素表示出来。例如(见下页) dt ? ? 例如: 微分方程 初始条件 y0 ? y , y1 ? dy0 , dt 二阶微分方程可以化为 ? dy0 ? y ? 1 ? dt ?dy1 ? ?k 2 y0 ? ? dt 函数m文件写成 function Dx=myfun(t,x)  dy ?t ? ? k 2 y ?t ? ? 0 dt y ?0 ? ? 0, y ? ?0? ? v0 变量与方程的量的对应关系 ? dy 0 ? ? y ? ? ? dt Dx ? ? ? x ? ? 0 ? ? dy1 ? ? y ? ? ? 1 ? dt ? 方程翻译成m文件为: 函数m文件写成 function Dx=myfun(t,x) Dx=[0;0]; % 初始化Dx,使其为列数组 k=1; Dx(1)=x(2); % 对微分方程的描述 Dx(2)=-k^2*x(1); 初始条件 y ?0

文档评论(0)

专注于电脑软件的下载与安装,各种疑难问题的解决,office办公软件的咨询,文档格式转换,音视频下载等等,欢迎各位咨询!

1亿VIP精品文档

相关文档