阻尼谐振子的能量以非常大的 Q 开始增加

计算科学 数值分析
2021-12-20 22:03:02

我已经对阻尼谐振子的(简化的)齐次方程进行了数值积分,以了解误差是如何传播的。

d2Xdϕ2+1QdXdϕ+X(ϕ)=0
在哪里ϕ=2πττ是减少的时间

在此过程中,我还提取了能量的对数并将其与时间作图,对于不同的品质因子 Q 值。可以预期,对于较大的 Q,能量衰减得更慢。

E=P2+X2
在哪里P=X˙

我发现对于非常大的 Q 值,振荡器的能量开始增加我检查了我的代码几次,我看不出它有什么问题,所以我怀疑它纯粹与数字有关,所以我开始玩它们,但首先是图表。

在此处输入图像描述

我发现很奇怪;说我正在使用步长1×10n. 如果 Q 的大小匹配或超过10n能量开始增加!这是什么原因造成的?Q和步长之间有什么联系?

另外,能量应该在振荡吗?(如果您放大图表上的红线和绿线,您会发现它的振荡速度要慢得多。)


以下是我如何为感兴趣的人整合方程式:

  1. X˙=P
  2. 因此原始方程变为P˙+1QP+X=0
  3. 现在我们有两个一阶 DE。
  4. 使用离散步骤,我们可以大致找到下一个点XP考虑到X˙=dXdϕ=Xn+1XnΔϕ并以相同的方式逼近另一个方程。
  5. 然后我们可以重新排列Xn+1Pn+1并创建一个代码来计算这些点,给定一些基本的初始条件。
1个回答

您基本上是在使用不稳定的Forward Euler时间步长。最好使用Backward Euler更好的是,如果您关心系统的总能量守恒,则需要使用辛积分方法。