我对matlab ODE函数的作用感到困惑。如果我有系统动力学,为什么我不能自己手动集成它并得到结果。ode45函数的确切用途是什么?
发布于 2020-02-16 07:01:19
您正在询问解析(手动)积分与数值积分之间的偏好。如果您可以手动求解ODE,那么,是的,您不需要使用ODE命令对其进行数值积分。您只需将初始/最终时间、初始条件和系统模型参数插入到解析解决方案中,即可计算出解决方案的数值。
然而,与通常的情况一样,找到常微分方程的解析解是非常困难或耗时的。特别是,如果你有一个非线性微分方程系统,手动计算解实际上是不可能的。在这种情况下,唯一实际的解决方案是使用数值积分,例如ODE45命令提供的功能。
此外,正如你可能知道的,常微分方程的解可能相当复杂,这取决于系统的输入(即,强迫函数)。因此,如果您的目标是分析系统对各种类型的输入(正弦、阶跃、脉冲等)的响应,则手动推导每种输入类型的解析解将非常困难。然而,更改输入类型并重新运行ODE45命令实际上是微不足道的。
发布于 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://stackoverflow.com/questions/60243256
复制相似问题