Python机器人动力学和细胞酶常微分方程
Last updated
Was this helpful?
Last updated
Was this helpful?
常微分方程 (ODE) 是涉及函数的一些常导数(而不是偏导数)的方程。通常,我们的目标是求解 ODE,即确定哪个或哪些函数满足方程。
如果你知道函数的导数是什么,那么如何求函数本身呢?你需要找到反导数,即你需要积分。例如,如果给你
那么函数 x(t) 是什么?由于\cos t 的反导数是\sin t,那么x(t) 必定是\sin t。只是我们忘记了一个重要的一点:如果我们只知道导数,那么总是存在一个我们无法确定的任意常数。因此,我们从上面的方程可以确定的是
一般来说,求解 ODE 比简单积分更复杂。即便如此,基本原则始终是积分,因为我们需要从导数到函数。通常,困难的部分是确定我们需要进行哪些积分。
不过,让我们从更简单的开始吧。最简单的 ODE 是什么?令 x(t) 为满足 ODE 的 t 函数:
让我们把事情变得更复杂一点。考虑方程
另一方面,如果我们不关心常数的形式,我们可以将通解写为
💦Python自由落体示例
问题数学表述:
封闭解:
任何 ODE 都可以重新表述为一阶系统方程。我们假设
结果为:
然后,初始二阶方程可以重新表述为:
一般公式:
近似解:需要误差估计
💦欧拉法:
📜 | 📜 | 📜 | 📜 | 📜 | 📜 | 📜 | 📜机器人动力学仿真 | 📜无细胞系统酶模型分析。
对于某个任意常数 C。您可以验证 确实满足方程 。
我们可以问一些简单的问题。什么是? 是由该方程唯一确定的吗?如果不是,还需要说明什么吗?
上述等式仅仅意味着是一个常数函数,。它当然不是唯一确定的,因为如果我们只有 的导数方程,则无法指定常数 C。为了唯一地确定,必须根据函数 本身提供一些附加数据。
其中 和 只是一些实数。方程 (2) 并不比方程 (1) 复杂多少,因为右侧不依赖于 。它仅取决于。我们只是简单地用 来指定导数。解就是反导数或积分。
这次让我们以稍微不同的方式进行积分。我们将使用从时间 到时间 的定积分。使用微积分基本定理, 从 到 的积分必须为
我们可以用不同的方式编写解。我们可以用任意时间 替换,
这种形式非常明显地表明解 x(t) 如何依赖于初始条件 。如果,那么
到目前为止,我们看到的 ODE 示例可以简单地通过积分来求解。它们如此简单的原因是 的方程不依赖于函数 ,而仅依赖于变量。另一方面,一旦方程同时依赖于 和 ,我们就需要做更多的工作来求解函数 。
这是一个包含 的 ODE:
自由落体中的点质量 。
重力场
质量
初始位置
初始速度
一般问题,求解。
离散时间:
时间步