通过MCP连接 →

输入计算

数学公式

广告

结果

Approximate y at x = 1
0.761577877980713414
用二阶龙格-库塔法(中点法)求得 y_n = f(xn)
步长 h = (xn - x0)/n 0.02
子区间数 n 50
i x_i y_i
0 0 0
1 0.0200000000000000004 0.0199980000000000019
2 0.0400000000000000008 0.0399800071983202471
3 0.0599999999999999978 0.0599300791260564958
4 0.0800000000000000017 0.0798323752456768093
5 0.100000000000000006 0.0996712070597656069
6 0.119999999999999996 0.119431087194065227
7 0.140000000000000013 0.139096777131368088
8 0.160000000000000003 0.158653333288278714
9 0.179999999999999993 0.178086151145683907
10 0.200000000000000011 0.197381007165616462
11 0.220000000000000001 0.216524098251703712
12 0.239999999999999991 0.235502078537144943
13 0.260000000000000009 0.254302093312726574
14 0.280000000000000027 0.272911809937302630
15 0.299999999999999989 0.291319445603977822
16 0.320000000000000007 0.309513791866466770
17 0.340000000000000024 0.327484235861315365
18 0.359999999999999987 0.345220778192424416
19 0.380000000000000004 0.362714047474209156
20 0.400000000000000022 0.379955311558386910
21 0.419999999999999984 0.396936485496481195
22 0.440000000000000002 0.413650136315375394
23 0.460000000000000020 0.430089484706401570
24 0.479999999999999982 0.446248403749321843
25 0.5 0.462121414811006104
26 0.520000000000000018 0.477703680774537398
27 0.540000000000000036 0.492990996767839251
28 0.560000000000000053 0.507979778571714169
29 0.579999999999999960 0.522667048895444131
30 0.599999999999999978 0.537050421713912929
31 0.619999999999999996 0.551128084863663603
32 0.640000000000000013 0.564898781096544900
33 0.660000000000000031 0.578361787788779114
34 0.680000000000000049 0.591516895500573292
35 0.700000000000000067 0.604364385576987795
36 0.719999999999999973 0.616905006974859837
37 0.739999999999999991 0.629139952493357413
38 0.760000000000000009 0.641070834577409543
39 0.780000000000000027 0.652699660854015540
40 0.800000000000000044 0.664028809551470589
41 0.820000000000000062 0.675061004941040266
42 0.839999999999999969 0.685799292929734738
43 0.859999999999999987 0.696247016921744177
44 0.880000000000000004 0.706407794054930038
45 0.900000000000000022 0.716285491907665772
46 0.920000000000000040 0.725884205760389145
47 0.940000000000000058 0.735208236485572653
48 0.959999999999999964 0.744262069129523307
49 0.979999999999999982 0.753050352239556631
50 1 0.761577877980713414

什么是二阶龙格-库塔法计算器?

这个工具用于在区间 \([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^2x*ysin(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\) 减半,误差大约缩小为原来的四分之一。

Advertisement
展示中点斜率估计的示意图,用于沿解曲线推进一个 RK2 步长
中点法先用斜率 \(k_1\) 找到中点,再用中点处的斜率 \(k_2\) 完成整步推进。

实例演算

求解 \(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\)。

最后更新: