一维单粒子运动的微分方程数值求解
1. 变量定义与微分方程求解
在求解微分方程时,有时不必特意指定变量(如 t、m 和 k)为实数且为正。即便仅将这些变量定义为符号,Python 仍能求解微分方程,不过会得出双曲余弦(cosh)函数而非余弦(cos)函数,且双曲余弦函数的自变量根式下带有负号。利用 cosh(ix) = cos(x) 这一关系,能得到与手动计算以及明确变量性质时相同的结果。由此可见,运用计算机代数系统(CAS)算法得出结果后,往往还需进行额外的代数运算,才能得到实用的结果。这也提醒我们不能遗忘数学技能,不能完全依赖计算机。
并非所有微分方程都能轻松求得解析解,有些甚至根本无法得到解析解。在无法获取解析解的情况下,可采用数值方法求解微分方程。
2. 微分方程的数值解
2.1 数值算法的必要性
有时微分方程很难求出解析解,或者根本没有解析解,此时就需要依靠数值算法。作为物理学家,遇到需要数值求解的微分方程可能比能手动求解的更多。所以,掌握用数值方法求解微分方程至关重要。
2.2 欧拉方法求解一阶常微分方程
考虑如下形式的一阶常微分方程(ODE):
[ \frac{dx}{dt} = f(x) ]
其中 f(x) 是关于 x 的良态函数,这里的 f(x) 是位置的任意函数,并非系统所受的力。该方法适用于各领域遇到的微分方程,不仅限于物理学。
为了数值求解此方程,需对等式左边的导数进行近似。通过去掉牛顿导数定义中的极限来实现近似:
[ \frac{dx}{dt} \approx \frac{x(t + dt) - x(t)}{dt}
订阅专栏 解锁全文
408



被折叠的 条评论
为什么被折叠?



