1
将Runge-Kutta方法应用于二阶ODE
如何用Runge-Kutta第四阶代替Euler方法来确定自由落体运动的重力大小不是恒定的(例如,从地面10000 km处自由落体)? 到目前为止,我通过欧拉方法编写了简单的积分: while() { v += getMagnitude(x) * dt; x += v * dt; time += dt; } x变量表示当前位置,v表示速度,getMagnitude(x)返回x位置的加速度。 我尝试实现RK4: while() { v += rk4(x, dt) * dt; // rk4() instead of getMagintude() x += v * dt; time += dt; } rk4()函数体在哪里: inline double rk4(double tx, double tdt) …