这个计算器有什么用
本工具可在区间 [x0, xn] 上数值求解形如 \(y'' = F(x, y, y')\) 的二阶常微分方程,采用的是二阶龙格-库塔法(即中点法 / 改进欧拉型 RK2 格式)。你只需把右端项 F 写成关于 x、y 和 p 的表达式(其中 p 表示 y'),再给出初值 \(y(x_0)\) 和 \(y'(x_0)\)、区间端点以及步数即可。计算结果是一张随区间逐步推进的 (x, y, y') 数值表。这是纯粹的数值分析方法,与国家或地区无关,在任何地方使用结果都完全一致。
使用方法
用 x、y 和 p 写出强迫函数 F,例如要表示 \(y'' = -4y' - 4y\),就输入 -4*p-4*y。支持运算符 + - * / ^(或 **),支持函数 sin、cos、tan、exp、log、ln、sqrt、abs、pow,以及常数 pi、e。设置起点 \(x_0\)、初值 \(y_0\) 和 \(y'_0 = p_0\)、终点 \(x_n\),再选择子区间个数 \(n\)。步数越多,步长 \(h = (x_n - x_0)/n\) 越小,误差也越低(全局误差为 \(O(h^2)\))。
公式详解
首先令 \(p = y'\),把方程化为一阶方程组:\(y' = p\) 和 \(p' = F(x, y, p)\)。每一步 RK2 都在区间起点和中点处分别采样斜率并加以组合:先算 \(j_1 = h\cdot F(x,y,p)\)、\(k_1 = h\cdot p\),再在中点处计算 \(j_2\) 和 \(k_2\),并用它们推进 p 和 y。每一步的局部截断误差为 \(O(h^3)\)。
实例演算
取 \(F = -4p-4y\),\(x_0 = 0\),\(y_0 = 0\),\(p_0 = 1\),\(x_n = 1\),\(n = 50\),则步长为 \(h = 0.02\)。第一步得到 \(y_1 = 0.0192\)、\(p_1 = 0.9224\)。一直迭代到 \(x = 1\),可得 \(y(1) \approx 0.13533\),\(y'(1) \approx -0.13533\),与精确解 \(y = x\cdot e^{-2x}\) 吻合——该解在 \(x = 1\) 处的值为 \(e^{-2} = 0.135335\)。
常见问题
这是 RK2 还是 RK4?这是二阶龙格-库塔法(中点法),而不是经典的四阶方法,因此全局精度只有二阶。
\(x_n\) 可以小于 \(x_0\) 吗?可以。这时步长会变为负数,积分会向后进行,在数学上完全成立。
为什么会出现报错行?当 F 中出现求值问题时,比如除以零、对非正数取对数或对负数开平方,积分会停止并报告出错位置。