通过MCP连接 →

输入计算

数学公式

广告

结果

Approximate y at the final x = 1
0.135296935
y' (= p) at that point: -0.1351841876
方法 二阶龙格-库塔法(中点法),局部误差 O(h^3)
步长 h 0.02
步数 n 50
x y y' = p
0.0000000000000000 0.0000000000000000 1.0000000000000000
0.020000000000000000 0.019200000000000000 0.92240000000000000
0.040000000000000000 0.036894720000000000 0.84934720000000000
0.060000000000000000 0.053172670463999996 0.78060434278399990
0.080000000000000000 0.068117735709081600 0.71594578469232630
0.10000000000000000 0.081809400586607000 0.65515694969774430
0.12000000000000001 0.094322966500334410 0.59803380843614800
0.14000000000000000 0.10572975724910819 0.54438238107427720
0.16000000000000000 0.11609731515993502 0.49401826294618173
0.18000000000000000 0.12548958795637377 0.44676617193727500
0.19999999999999998 0.13396710678720436 0.40245951663989300
0.21999999999999997 0.14158715582126055 0.36093998434738000
0.23999999999999996 0.14840393379607325 0.32205714799495050
0.25999999999999995 0.15446870789053943 0.28566809119500390
0.27999999999999997 0.15982996027517107 0.25163705055227820
0.30000000000000000 0.16453352767755470 0.21983507448028827
0.32000000000000000 0.16862273428543417 0.19013969777498171
0.34000000000000000 0.17213851829528548 0.16243463123452180
0.36000000000000004 0.17511955240035207 0.13660946564564497
0.38000000000000006 0.17760235849882816 0.11255938948719588
0.40000000000000010 0.17962141689018327 0.090184919730279480
0.42000000000000010 0.18120927021549250 0.069391645142043710
0.44000000000000010 0.18239662238604734 0.050089981526471296
0.46000000000000013 0.18321243273344676 0.032194938360768685
0.48000000000000015 0.18368400560378675 0.015625896310044324
0.50000000000000010 0.18383707560845658 0.00030639512601406127
0.52000000000000010 0.18369588873438927 -0.013836068542494098
0.54000000000000010 0.18328327950738588 -0.026870233878397654
0.56000000000000020 0.18262074439331474 -0.038861259595601230
0.58000000000000020 0.18172851161356454 -0.049870899020389145
0.60000000000000020 0.18062560754308220 -0.059957666948328710
0.62000000000000020 0.17932991985163985 -0.069176998652447110
0.64000000000000020 0.17785825754163154 -0.077581401401623160
0.66000000000000030 0.17622640802868705 -0.085220598832054500
0.68000000000000030 0.17444919140468865 -0.092141668499290240
0.70000000000000030 0.17254051201637852 -0.098389172923625410
0.72000000000000030 0.17051340748663180 -0.10400528442760995
0.74000000000000030 0.16838009529963238 -0.10902990405100074
0.76000000000000030 0.16615201706561347 -0.11350077481565485
0.78000000000000040 0.16383988057550042 -0.11745358960059915
0.80000000000000040 0.16145369975070850 -0.12092209387579109
0.82000000000000040 0.15900283258849274 -0.12393818353188411
0.84000000000000040 0.15649601719860975 -0.12653199803260615
0.86000000000000040 0.15394140602262482 -0.12873200910612914
0.88000000000000040 0.15134659832296904 -0.13056510518203110
0.90000000000000050 0.14871867102481567 -0.13205667177110950
0.92000000000000050 0.14606420798999050 -0.13323066797637725
0.94000000000000050 0.14338932779845207 -0.13410969931504166
0.96000000000000050 0.14069971010936450 -0.13471508702311555
0.98000000000000050 0.13800062067043317 -0.13506693400652098
1.0000000000000004 0.13529693504097162 -0.13518418759510423

这个计算器有什么用

本工具可在区间 [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)\)。

Advertisement
将二阶 ODE 化简为两个耦合一阶方程的示意图
利用 \(y' = p\),将二阶常微分方程改写为两个耦合的一阶方程。
展示 RK2 中点法在一步的中点处估算斜率的示意图
中点 RK2 方法先估算初始斜率,再利用区间中点处的斜率推进解。

实例演算

取 \(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 中出现求值问题时,比如除以零、对非正数取对数或对负数开平方,积分会停止并报告出错位置。

最后更新: