什么是二阶龙格-库塔法计算器?
这个工具用于在区间 \([x_0, x_n]\) 上数值求解形如 \(y' = F(x, y)\) 的一阶常微分方程(ODE),从初始条件 \(y_0 = f(x_0)\) 出发。它采用二阶龙格-库塔法(即中点法),输出一张 \((x, y)\) 近似值表,并给出终点处的解 \(y_n = f(x_n)\)。这是一款通用的数学工具,不受任何国家或地区规则的限制。
使用方法
把方程右端 \(F(x,y)\) 写成关于 \(x\) 和 \(y\) 的数学表达式(例如 1-y^2、x*y 或 sin(x)+y)。然后填入初始点 \(x_0\) 与 \(y_0\)、区间右端点 \(x_n\),并选择等分的子区间数 \(n\)。整个区间会被划分为 \(n\) 段,步长 \(h = (x_n - x_0)/n\)。\(n\) 越大,步长越细,结果越精确。显示精度选项只影响结果保留的有效数字位数,不影响计算本身。
公式解析
中点型龙格-库塔格式每次推进一步:
$$\begin{aligned} k_1 &= h \cdot F(x_i, y_i) \\ k_2 &= h \cdot F\left(x_i + \tfrac{h}{2},\; y_i + \tfrac{k_1}{2}\right) \\ y_{i+1} &= y_i + k_2, \quad x_{i+1} = x_i + h \end{aligned}$$斜率是在步长中点处估计的,这样恰好抵消了主要误差项。局部截断误差为 \(O(h^3)\),全局误差为 \(O(h^2)\),因此步长 \(h\) 减半,误差大约缩小为原来的四分之一。
实例演算
求解 \(y' = 1 - y^2\),取 \(x_0 = 0\)、\(y_0 = 0\)、\(x_n = 1\)、\(n = 50\)(即 \(h = 0.02\))。其精确解为 \(y = \tanh(x)\)。第 1 步: $$k_1 = 0.02 \cdot (1-0) = 0.02$$ $$k_2 = 0.02 \cdot (1-0.01^2) = 0.019998$$ $$y_1 = 0.019998$$ 依此完成全部 50 步后得到 \(y(1) \approx 0.76159\),与 \(\tanh(1) \approx 0.7615942\) 在小数点后五位完全吻合。
常见问题
计算结果有多准确? \(n\) 越大越精确,因为全局误差与 \(h^2\) 成正比。对于刚性方程或步长过大的情形,结果可能发散。
\(x_n\) 可以小于 \(x_0\) 吗? 可以。此时 \(h\) 为负值,方法会沿 \(x\) 反向积分,结果依然有效。
可以使用哪些函数? 支持常见函数:sin、cos、tan、exp、ln、log、sqrt,以及运算符 +、-、*、/、^ 和括号,还有常数 \(e\) 与 \(\pi\)。