将隐式欧拉与二阶微分方程一起使用

计算科学 计算物理学 一体化 微分方程 结石
2021-12-22 20:44:08

我们可以使用 Euler 方法对一阶微分方程进行数值积分,如下所示:

yn+1=yn+hf(tn,yn)

并且像这样使用隐式欧拉:

yn+1=yn+hf(tn+1,yn+1)

如果我有一个微分方程yky=0, 我可以整合y数值使用隐式欧拉:

yn+1=yn+hkyn+1
yn+1=yn11hk

但是我如何将隐式欧拉用于二阶微分方程,例如简单谐波运动的方程?

y+w2y=0

我们必须对进行积分。对于显式欧拉,数值积分看起来像这样 (?): yy

yn+1=yn+hf(tn,yn)
yn+1=yn+hg(tn,yn)

我们将如何使用隐式欧拉进行积分?

1个回答

你必须把你的二阶方程写成两个一阶方程的系统。,然后你的方程y=v

y+ω2y=0

变成

(yv)=(vω2y)=(01ω20)(yv)

如果将和矩阵表示为,则该系统可以写为u=(y,v)A

u=Au

现在隐式欧拉读取

un+1=un+hAun+1

要么

(IhA)un+1=un

翻译回你得到的组件

(1hhω21)(yn+1vn+1)=(ynvn)

附录可能值得指出的是,隐式欧拉对于这类问题并不是一个很好的积分器,因为它会导致人为的能量耗散。您可能会更好地使用所谓的辛欧拉方法