首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ode45 - ODE函数--自我集成vs Matlab函数

ode45 - ODE函数--自我集成vs Matlab函数
EN

Stack Overflow用户
提问于 2020-02-16 05:23:43
回答 2查看 229关注 0票数 0

我对matlab ODE函数的作用感到困惑。如果我有系统动力学,为什么我不能自己手动集成它并得到结果。ode45函数的确切用途是什么?

EN

回答 2

Stack Overflow用户

发布于 2020-02-16 07:01:19

您正在询问解析(手动)积分与数值积分之间的偏好。如果您可以手动求解ODE,那么,是的,您不需要使用ODE命令对其进行数值积分。您只需将初始/最终时间、初始条件和系统模型参数插入到解析解决方案中,即可计算出解决方案的数值。

然而,与通常的情况一样,找到常微分方程的解析解是非常困难或耗时的。特别是,如果你有一个非线性微分方程系统,手动计算解实际上是不可能的。在这种情况下,唯一实际的解决方案是使用数值积分,例如ODE45命令提供的功能。

此外,正如你可能知道的,常微分方程的解可能相当复杂,这取决于系统的输入(即,强迫函数)。因此,如果您的目标是分析系统对各种类型的输入(正弦、阶跃、脉冲等)的响应,则手动推导每种输入类型的解析解将非常困难。然而,更改输入类型并重新运行ODE45命令实际上是微不足道的。

票数 2
EN

Stack Overflow用户

发布于 2020-02-16 05:30:45

引用官方文档:

所有MATLAB®常微分方程求解器都可以求解y‘=f(t,y)形式的方程组,或涉及质量矩阵M(t,y) y’=f(t,y)的问题。解算器都使用类似的语法。

如果质量矩阵是常数,则ode23s求解器只能解决具有质量矩阵的问题。

ode15s和ode23t可以解决具有奇异质量矩阵的问题,称为微分代数方程(DAE)。使用odeset的质量选项指定质量矩阵。

ode45是一个通用的ODE解算器,并且是您应该尝试解决大多数问题的第一个解算器。但是,如果问题很难解决或者需要很高的精度,那么有其他的ODE解算器可能更适合这个问题。有关详细信息,请参见选择ODE解算器。

https://www.mathworks.com/help/matlab/ref/ode45.html

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60243256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档