用于积分 ODE 的隐式 Euler 方法

Implicit Euler method for integration of ODEs

对于那些熟悉该方法的人来说,众所周知,必须求解方程式:

y(i+1) = y(i) + h*F( X(i+1), Y(i+1) )

但是,F 通常不是线性的,因此得到的方程通常对 y(i+1) 有很多不同的解。我们正在寻找哪种解决方案,例如,对 Newton-Raphson 方法要做什么才能找到正确的零?感谢任何帮助。

通常您会选择最接近 y(i) 的解决方案。正确解应该满足

y(i+1)=y(i)+h*f(x(i),y(i)) + O(h²)

然而,对于刚性问题,O(h²) 中的常数可能非常大,因此这种关系并不像看起来那么有用。

如果Lfq=L·h < 1的Lipschitz常数,那么迭代

k(j+1) = f(x(i+1), y(i)+h*k(j))

几何收敛,误差与 q^j/(1-q) 或更小成正比。

这对于刚性问题是违反的,您在 (x(i+1),y(i)) 中使用 f 的 Jacobian J 来迭代

k(j+1) = k(j) - (I-h*J)^(-1)*( k(j)-f( x(i+1), y(i)+h*k(j)) )

可能将 (I-h*J)^(-1) 近似为 I+h*J,参见 Rosenbrock 方法。从 k(0)=0k(0)=f(x(i),y(i)) 开始应该几乎总是快速收敛到正确的解决方案。