用于积分 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²)
中的常数可能非常大,因此这种关系并不像看起来那么有用。
如果L
是f
和q=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)=0
或 k(0)=f(x(i),y(i))
开始应该几乎总是快速收敛到正确的解决方案。
对于那些熟悉该方法的人来说,众所周知,必须求解方程式:
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²)
中的常数可能非常大,因此这种关系并不像看起来那么有用。
如果L
是f
和q=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)=0
或 k(0)=f(x(i),y(i))
开始应该几乎总是快速收敛到正确的解决方案。