这个计算器能做什么
本工具采用经典的四阶龙格-库塔(RK4)方法,在区间 [x0, xn] 上数值求解形如 \(y'' = F(x,\,y,\,y')\) 的二阶常微分方程。你只需输入方程右端 F(用 x、y 和 p 表示的数学表达式,其中 p 代表 y')、初始条件 y(x0) 与 y'(x0)、区间端点以及步数。计算器会返回 x、y 与 y' 的完整数值表,并给出端点处的结果。这是纯粹的数值分析方法,普遍适用,不受任何国家或地区限制。
使用方法
先输入 F(x, y, p)——例如对于 \(y'' + 4y' + 4y = 0\),可填写 -4*p - 4*y。设定 x0、y0 = f(x0) 以及 p0 = y'(x0),再设定终点 xn,并选择子区间数 n(n 越大,步长 \(h = \frac{\text{xn} - \text{x0}}{\text{n}}\) 越小,精度越高)。最后选择结果显示的有效数字位数。RK4 的全局误差为 \(O(h^4)\),因此把 n 翻倍,误差大约会缩小到原来的 1/16。
公式原理
令 \(p = y'\),即可把一个二阶常微分方程降阶为两个一阶方程组成的方程组:此时 \(y' = p\),\(p' = F(x, y, p)\)。RK4 在每一步通过四次加权斜率计算同时推进这两个未知量(k 对应 y,j 对应 p),并按 \((k_1 + 2k_2 + 2k_3 + k_4)/6\) 与 \((j_1 + 2j_2 + 2j_3 + j_4)/6\) 进行加权合成。
$$\begin{aligned} k_1 &= h\,p_i & l_1 &= h\,F(x_i,\,y_i,\,p_i) \\ k_2 &= h\left(p_i+\tfrac{l_1}{2}\right) & l_2 &= h\,F\!\left(x_i+\tfrac{h}{2},\,y_i+\tfrac{k_1}{2},\,p_i+\tfrac{l_1}{2}\right) \\ k_3 &= h\left(p_i+\tfrac{l_2}{2}\right) & l_3 &= h\,F\!\left(x_i+\tfrac{h}{2},\,y_i+\tfrac{k_2}{2},\,p_i+\tfrac{l_2}{2}\right) \\ k_4 &= h\left(p_i+l_3\right) & l_4 &= h\,F\!\left(x_i+h,\,y_i+k_3,\,p_i+l_3\right) \end{aligned}$$$$y_{i+1} = y_i + \tfrac{1}{6}\left(k_1+2k_2+2k_3+k_4\right), \quad p_{i+1} = p_i + \tfrac{1}{6}\left(l_1+2l_2+2l_3+l_4\right)$$
实例演算
取 \(y'' = -4p - 4y\),其中 x0 = 0、y0 = 0、p0 = 1、xn = 1,并只用一个很粗的大步长(n = 1,h = 1)。四个阶段分别给出 \(k_1=1\)、\(k_2=-1\)、\(k_3=2\)、\(k_4=-5\) 以及 \(j_1=-4\)、\(j_2=2\)、\(j_3=-6\)、\(j_4=12\)。于是 $$y(1) = \frac{1 - 2 + 4 - 5}{6} = -\frac{1}{3} = -0.3333,$$ $$p(1) = 1 + \frac{-4 + 4 - 12 + 12}{6} = 1.$$该方程的精确解为 \(y = x e^{-2x}\),故 \(y(1) = e^{-2} = 0.1353\);可见 h = 1 这一步实在太粗。若取 n = 50 或 100,结果就会收敛到精确值附近。
常见问题
可以反向积分吗?可以——把 xn 设得比 x0 小,步长 h 就会变为负值,从而从 x0 向 xn 反向积分。
为什么步数太少时结果明显不对?RK4 的精度依赖于足够小的步长。请逐步增大 n,直到相邻两次的结果不再明显变化为止。
F 中可以使用哪些函数?支持 + - * / ^、括号,以及 sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、exp、log/ln、log10、sqrt、abs,还有常数 pi 和 e。