通过MCP连接 →

输入计算

数学公式

广告

结果

y(xn) — approximate value at endpoint
0.7652614605
Euler approximation with step size h = 0.02
细分段数 n 50
步长 h 0.02
k xk yk
0 0 0
1 0.02 0.02
2 0.04 0.039992
3 0.06 0.0599600128
4 0.08 0.0798881087
5 0.1 0.0997604665
6 0.12 0.1195614235
7 0.14 0.1392755248
8 0.16 0.1588875714
9 0.18 0.1783826662
10 0.2 0.1977462587
11 0.22 0.216964187
12 0.24 0.2360227179
13 0.26 0.2549085834
14 0.28 0.2736090157
15 0.3 0.2921117778
16 0.32 0.310405192
17 0.34 0.3284781643
18 0.36 0.3463202062
19 0.38 0.3639214525
20 0.4 0.3812726761
21 0.42 0.398365299
22 0.44 0.4151914008
23 0.46 0.4317437228
24 0.48 0.4480156699
25 0.5 0.4640013091
26 0.52 0.4796953648
27 0.54 0.495093212
28 0.56 0.5101908662
29 0.58 0.5249849718
30 0.6 0.5394727874
31 0.62 0.5536521696
32 0.64 0.5675215551
33 0.66 0.5810799408
34 0.68 0.5943268629
35 0.7 0.6072623745
36 0.72 0.6198870226
37 0.74 0.6322018242
38 0.76 0.6442082413
39 0.78 0.6559081561
40 0.8 0.6673038459
41 0.82 0.6783979575
42 0.84 0.6891934817
43 0.86 0.6996937286
44 0.88 0.7099023023
45 0.9 0.7198230767
46 0.92 0.7294601715
47 0.94 0.7388179287
48 0.96 0.74790089
49 0.98 0.7567137752
50 1 0.7652614605

这个计算器能做什么

本工具采用经典的前向(显式)欧拉法,对形如 \(y' = F(x, y)\) 的一阶常微分方程进行数值求解,初始条件为 \(y(x_0) = y_0\)。它将区间从 \(x_0\) 到 \(x_n\) 等分成 \(n\) 步逐步推进,最终给出步长 \(h\)、完整的 \((x, y)\) 近似值数值表,以及终点处的近似值 \(y(x_n)\)。

使用方法

把方程右端项 \(F(x, y)\) 写成关于变量 \(x\) 和 \(y\) 的数学表达式(支持运算符 + - * / ^、括号,以及 sin、cos、exp、log/ln、sqrt、abs 等函数,还有常数 pi 和 e)。然后设置起点 \(x_0\)、初始值 \(y_0\)、终点 \(x_n\),并选择细分段数 \(n\)。\(n\) 越大,步长越小,结果通常也越精确。

公式解析

步长为 $$h = \frac{x_n - x_0}{n},$$ 网格节点为 \(x_k = x_0 + k\cdot h\)。从 \(y_0\) 出发,每个新值按 $$y_{k+1} = y_k + h\cdot F(x_k, y_k)$$ 计算:在当前点处取斜率 \(F\),再沿这条直线走一段宽度为 \(h\) 的步长。该方法是一阶精度的,因此全局误差大致与 \(O(h)\) 成正比。

Advertisement
欧拉法沿切线从一点推进到下一点
每一步欧拉法沿切线斜率 \(F(x,y)\) 前进一个步长 \(h\),逐渐偏离真实曲线。

实例演算

对于 \(y' = 1 - y^2\),取 \(x_0 = 0\)、\(y_0 = 0\)、\(x_n = 1\)、\(n = 5\),步长 \(h = 0.2\)。逐步迭代得到 \(y_1 = 0.2\)、\(y_2 = 0.392\)、\(y_3 = 0.5612672\)、\(y_4 \approx 0.6982668\)、\(y_5 \approx 0.8007513\)。因此欧拉法在 \(x = 1\) 处的估计值约为 \(0.8008\)。该方程的精确解是 \(\tanh(x)\),所以 \(\tanh(1) \approx 0.7616\);增大 \(n\) 会使欧拉法的结果逐渐逼近这个真实值。

含 x 列和 y 列的欧拉迭代步骤表
该例题逐步构建一张表,列出直到终点 \(x_n\) 的 \(x_k\) 和 \(y_k\) 值。

常见问题

为什么我算出的结果和精确解不一样?欧拉法只有一阶精度。误差大致与步长 \(h\) 成正比,因此选取更大的 \(n\)(更小的步长)就能提高精度。

\(x_n\) 可以比 \(x_0\) 小吗?可以。这时步长 \(h\) 变为负值,同样的递推公式会向后(反向)积分。

支持哪些函数?sin、cos、tan、asin、acos、atan、sinh、cosh、tanh、exp、log/ln、log10、sqrt 和 abs,以及常数 pi 和 e。

最后更新: