matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程

matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程在MATLAB官网ode45函数介绍中有一下四种用法。[t,y]=ode45(odefun,tspan,y0)https://www.mathworks.com/help/releases/R2020b/matlab/ref/ode45.html?doclanguage=zh-CN&nocookie=true&prodfilter=ML%20SL%205G%20AE%20AT%20AA%20AU%20DR%20AS%20BI%20CM%20VP%20CT%20CF%20DA%…

     在MATLAB官网ode45函数介绍中有一下四种用法。 [t,y] = ode45(odefun,tspan,y0)icon-default.png?t=L892https://www.mathworks.com/help/releases/R2020b/matlab/ref/ode45.html?doclanguage=zh-CN&nocookie=true&prodfilter=ML%20SL%205G%20AE%20AT%20AA%20AU%20DR%20AS%20BI%20CM%20VP%20CT%20CF%20DA%20DB%20DF%20DH%20NN%20DO%20DS%20ET%20EC%20FH%20IT%20FI%20PO%20FL%20GD%20GC%20HD%20ES%20IE%20IA%20IP%20IC%20LP%20LS%20MG%20ME%20CO%20MJ%20DW%20MR%20MW%20AM%20MP%20MB%20MT%20NV%20OT%20OP%20DM%20PD%20AR%20BD%20BS%20CD%20CS%20PW%20PM%20RA%20RL%20RB%20RF%20RK%20RO%20RC%20RR%20TF%20SX%20SG%20SB%20SE%20SS%20LD%20PS%20SH%20MS%20VR%20VV%20CI%20RT%20SK%20SD%20CV%20SO%20DV%20WT%20PL%20XP%20SR%20RQ%20SZ%20HW%20EL%20SF%20ST%20SM%20ZC%20ID%20TA%20TR%20UV%20VE%20VN%20VT%20WA%20LH%20WL&docviewer=helpbrowser&docrelease=R2020b&s_cid=pl_webdoc&loginurl=https%3A%2F%2Flocalhost%3A31515%2Ftoolbox%2Fmatlab%2Fmatlab_login_framework%2Fweb%2Findex.html%3Fsnc%3DOHKPVM&searchsource=mw&snc=MDGHZE&container=jshelpbrowser#d122e852982

在此处,t,y是最终要通过ode45函数得到的结果。odefun是要求解的函数,英文span是跨度的含义,time是时间的含义。因此,顾名思义,tspan 表示时间的跨度,即时间的范围。而y0则便是要求解y的初值。即计算给定初值的函数在给定时间范围内的值。

如果还不是很清楚,那么,可以看官网给的一个简单的例子。

y’=2t

t=[0 5]

y(0)=0

对于这样的一个一阶导的函数,程序和结果如下:

matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程

matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程

  但由于该方程简单,因此也可以直接将2t写入主程序中。即下图所示:

 matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程

 上述是求一阶导的,那么如果相求二阶导的呢。

接下来,这个例子就是二阶微分方程了。方程如下所示:

 y”-(1-y^2)y’+y=0

y(0)=2,y'(0)=0

t=[0 20]

对于该方程,采用ode45求解的思路为:让y=y(1),y’=dy(1)=y(2),y”=ddy(1)=dy(2),即y的自身为y(1),y的一阶导赋值为y(2),y的二阶导赋值为y(3),从而将y的二阶导转化为y(2)的一阶导。

因为龙格库塔法是用来求一阶导的。理论内容可以参考数值分析等的书籍。通过将二阶导降阶成为一阶导,再用龙格库塔法ode45实现求解。

回到例子,则上述方程可表示为

dy(1)=y(2)

dy(2)=(1-y(1)^2)y(2)-y(1)

其求解程序和结果如下图。

 matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程

matlab用ode45求解一阶微分方程_matlab解一阶线性微分方程

 那么对于求解方程组即方程中存在分段函数,又该怎么处理呢。这将在后续进行记录。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234298.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 流水线设计思想_全自动流水线

    流水线设计思想_全自动流水线在硬件电路设计中,流水线设计思想是一种很重要的设计思想,这种思想是一种用面积换速度的思想,用更多的资源来实现高速。(面积就是需要的硬件数量,如触发器的数量)顾名思义,流水线思想,就像工厂中的流水线一样。假设是一个手机组装的流水线,一个三个步骤:A,将电池装入手机起来;B,将屏幕组装起来;C,将外壳组装起来。在上面的三个步骤中,流水线的实现就是:A步骤实现后,将手机发往B,然后A继续组装电池,而不会等待C完成再组装;B和C也是一样。流水线思想就是自己完成自己的功能,不会等待。这在硬件电路中就是一种并行的

    2022年8月14日
  • 用WijmoJS玩转您的Web应用 —— Ionic

    用WijmoJS玩转您的Web应用 —— Ionic

    2021年6月7日
  • itextpdf设置页码_word页码相同怎么改

    itextpdf设置页码_word页码相同怎么改项目需要样式比较复杂,刚开始因为时间比较紧所以采用了Itextpdf插件代码生成pdf,实话说过程十分繁琐,因为pdf文件样式比较多,表格也比较多,各种的表格,还有就是页眉页脚页码都要自己找页面位置坐标但是又不能像html那样方便更改查看样式,只能改一点导出来看看合适不,然后再改再导出来看。私下调研了很多,现在罗列一下我所用到的一些样式处理,希望可以帮助需要做这个功能的朋友少踩坑,少尝试,直接出完美pdf报告。封面首页封面右上角那个图片可以换成logo,我做的大概是这样的一个样子,上代码/

    2022年10月3日
  • 2014 中华架构师大会 回想[通俗易懂]

    2014 中华架构师大会 回想

    2022年1月31日
  • 每天一道算法_1_放苹果「建议收藏」

    Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Output8 解析: 设f(m,n) 为m个

    2022年3月10日
  • 面向对象设计

    面向对象设计

    2021年11月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号