在线方程求解器:从"猜根"到"高斯消元"
一款方程求解器,支持两类任务。在选定区间内数值求解单个方程 f(x)=0 的所有实根,或求解 2×2 至 6×6 的方形线性方程组 Ax=b——增广矩阵单元格可编辑,支持批量粘贴系数并复制方程组。结果与校验即时呈现,全部在浏览器本地运行。
方程求解器使用说明
求根与最高 6×6 的线性方程组
方程求解器覆盖两类核心问题:在区间上求单变量方程 f(x) = 0 的所有实根,以及求解 2×2 到 6×6 的线性方程组 Ax = b。求根用扫描加二分法,线性方程组用部分主元高斯消元(RREF)。所有计算在浏览器本地完成,即输即得。
01 单方程模式
输入一个要求根的关于 x 的表达式;求解器在 [xmin, xmax] 内搜索 f(x) = 0 的值。例如,在 [−10, 10] 上输入 x^2 − 4 会找到 −2 和 2。求解器使用数值括号法,因此根必须位于所选区间内;如果预期有更多根,请扩大范围或将其拆分。
线性方程组模式求解 Ax = b。选择矩阵规模(2×2 到 6×6),填写 A 的系数和 b 的条目,然后按 Solve。方程组通过行化简求解;如果它奇异或不一致,会有错误信息说明问题。
求根的第一步是"扫描":把区间等分成许多小段,计算每个端点的函数值,寻找符号变化。一旦发现 f(a) 与 f(b) 异号,就启动二分法在这个子区间内精化。二分法每次取中点,把不含根的那一半丢掉,区间长度减半,约 34 次迭代后精度可达 10⁻¹⁰。
线性方程组使用部分主元高斯消元。每一步把当前列绝对值最大的行换到对角位置,再开始消元。这样做可以避免除以很小的数,从而抑制浮点误差。如果不选主元,遇到对角元接近 0 的矩阵,结果可能完全错误,即使数学上方程组有唯一解。
- Single 模式支持与二维绘图器相同的数学函数
- 求根在区间边界包含变号时效果最佳
- 方程组使用高斯消元法(RREF)
- 奇异或接近奇异的矩阵没有唯一解
- 所有计算在浏览器本地完成,不上传数据
02 零点存在定理与二分法
如果连续函数 f 在区间 [a, b] 两端取值一正一负,那么根据零点存在定理(介值定理的推论),区间内必然存在至少一个 x 使 f(x) = 0。直觉很朴素:一条从平面下方连到上方的连续曲线,必然穿过 x 轴。这个定理是几乎所有"括号法"求根算法的理论基础。
二分法是最古老也最可靠的求根算法。一旦找到变号区间,每次取中点,看符号,把不含根的那一半丢掉。重复 n 次后,区间长度变为原来的 1/2ⁿ。它慢但稳,只要函数连续且变号,就一定收敛。这是它流传两千年仍被广泛使用的原因。
二分法只能找到"变号"的根。对于 f(x) = (x−1)² 这类"切于 x 轴但不穿过"的偶数重根,符号在两侧都为正,不发生变号,因此会被漏掉。遇到这种情况,可以尝试改写方程(如 |x−1| = 0),或使用牛顿法等基于导数的方法。
03 高斯消元与 RREF
系统性地"消元"解线性方程组,最早见于中国西汉的《九章算术·方程》,比西方早约 1800 年。19 世纪高斯在大地测量与轨道计算中把它规范化,后人遂称之为高斯消元法。基本操作只有三种:交换两行、某行乘非零常数、把一行的倍数加到另一行。
RREF(Reduced Row Echelon Form,行最简形)是高斯消元的终点:每个主元都是 1,主元所在列其他元素全为 0,主元位置呈阶梯状右移。从 RREF 你可以一眼看出方程组有没有解(出现 0 = 非零行则无解)、解是否唯一(主元数 = 未知数个数则唯一)、有多少个自由变量。
部分主元策略在每一步把当前列绝对值最大的行换到对角位置,从根本上抑制误差增长。这是教科书从理论走向工程时必讲的一课——算法对了不够,还要在浮点世界里稳。
模式标签页
- Single equation在区间上求 f(x) = 0 的实根。
- Linear system求解方阵方程组 Ax = b。
单方程控件
- f(x) = 0要求根的关于 x 的表达式。
- xmin / xmax搜索根的区间。
- Find roots运行数值求根并列出解。
线性方程组控件
- size (n×n)将方程组规模设置为 2×2 到 6×6。
- matrix A cells左侧矩阵的系数。
- vector b cells右侧常数项。
- bulk text box粘贴或输入整个增广矩阵 [A|b],每行一行,n 个系数加 b,以逗号或空格分隔。
- Apply解析批量文本框,一次性设置规模并填充 A 与 b。
- Copy将当前增广矩阵复制为逗号分隔的多行文本。
- Solve求解 Ax = b 并显示 x₁ … xₙ。
- 对于单方程,先在二维绘图器中绘制 f(x) 以查看根的位置。
- 如果未找到已知根,请扩大搜索区间。
- 确保方程组中每个系数单元格都已填写(缺失项用 0)。
- 对于非线性方程组,每次对一个变量求解方程。
- 偶数重根(如 (x−1)² = 0)不发生变号,二分法可能漏掉。
- 打开 RREF 模式可判断方程组是无解、唯一解还是无穷多解。
- 病态矩阵的解对输入误差敏感,结果可能不可信。
- 所有计算在本地完成,断网后页面已加载仍可使用。
免费在线方程求解工具,覆盖两类常见问题:在指定区间内数值求 f(x)=0 的所有实根,以及求解最高 6×6 的线性方程组 Ax=b。求根用扫描加二分法,线性方程组用部分主元高斯消元(RREF)。所有计算在浏览器本地完成,即输即得。
这个工具能做什么
第一类:单变量方程求根。你给一个关于 x 的表达式和一个区间,它告诉你区间内所有实根的位置。第二类:线性方程组求解。你给系数矩阵 A 和常数向量 b,它返回解向量 x,或告诉你方程组无解/无穷多解。两类问题都给出数值结果,可以核对作业或快速验证。
零点存在定理:为什么"变号"意味着"有根"
如果连续函数 f 在区间 [a,b] 两端取值一正一负,那么根据零点存在定理(也叫介值定理的推论),区间内必然存在至少一个 x 使 f(x)=0。直觉很朴素:一条从平面下方连到上方的连续曲线,必然穿过 x 轴。这个定理是几乎所有"括号法"求根算法的理论基础。
二分法:最古老也最可靠的求根算法
一旦找到变号区间 [a,b],二分法每次取中点 m=(a+b)/2,看 f(m) 的符号,把不含根的那一半丢掉,区间长度立即减半。重复 n 次后,区间长度变为原来的 1/2ⁿ——大约 34 次就能把根锁定到 10⁻¹⁰ 精度。二分法慢但稳,只要函数连续且变号,就一定收敛,这是它流传两千年仍被广泛使用的原因。
高斯消元:从中国古代《九章算术》到现代计算机
系统性地"消元"解线性方程组,最早见于中国西汉的《九章算术·方程》,比西方早约 1800 年。19 世纪高斯在大地测量与轨道计算中把它规范化,后人遂称之为高斯消元法。基本操作只有三种:交换两行、某行乘非零常数、把一行的倍数加到另一行。任何线性方程组经过有限步这三种操作,都会化成阶梯形乃至最简形,解便一目了然。
RREF 是什么?行最简形告诉你方程组的"真实自由度"
RREF(Reduced Row Echelon Form,行最简形)是高斯消元的终点:每个主元都是 1,主元所在列其他元素全为 0,主元位置呈阶梯状右移。从 RREF 你可以一眼看出方程组有没有解(出现 0=非零 行则无解)、解是否唯一(主元数=未知数个数则唯一)、有多少个自由变量。这比"算出答案"更能揭示方程组的结构。
部分主元:让浮点运算不"翻车"
朴素高斯消元在每一步用对角元素做除法。若该元素很小,除以它会放大舍入误差,结果可能完全错误。部分主元策略在每一步把当前列绝对值最大的行换到对角位置,从根本上抑制误差增长。这是教科书从理论走向工程时必讲的一课——算法对了不够,还要在浮点世界里稳。
表达式语法
单方程模式:输入关于 x 的表达式,例如 x^2 - 4、sin(x) - x/2、exp(-x) - x、x^3 - 2*x - 5。所有 2D 绘图可用的函数(sin、cos、tan、exp、log、sqrt、abs、pow 等)都可用。线性方程组模式:直接填系数矩阵 A 与右端向量 b 的数字,不需要表达式。
如何使用:三步上手
求根:第一步在 f(x)=0 输入框写 x^2 - 4,第二步把区间设为 [−10, 10],第三步点 Find roots,你会看到 −2 和 2 两个根。解方程组:第一步选规模 3,第二步填入 A 与 b(例如 A = [[2,1,−1],[−3,−1,2],[−2,1,2]],b = [8,−11,−3]),第三步点 Solve,得到 x = (2, 3, −1)。
数值解 vs 解析解
解析解(如 x = (−b ± √(b²−4ac)) / 2a)是精确公式,优点是"一步到位",缺点是只存在于一元一次到四次方程以及少数特殊类型。伽罗瓦理论证明了五次及以上一般多项式没有根式解。数值解则是逼近:从猜测出发逐步靠近真根,优点是对任意方程都适用,缺点是只能给有限精度。实际工程中 99% 的方程都是数值求解的。
现实中的应用
电路分析中,基尔霍夫定律给出的是线性方程组;结构力学中,梁的位移由刚度矩阵与载荷向量的线性方程组决定;经济学中的列昂惕夫投入产出模型也是 Ax=b。求根则出现在:求贷款的实际利率、确定抛体运动落地时刻、求化学平衡浓度、设计透镜焦距。学会"列方程 + 解方程",就掌握了把现实问题翻译成数学问题的钥匙。
局限性
二分法只能找到"变号"的根,对于 f(x) = (x−1)² 这类"切于 x 轴但不穿过"的偶数重根会漏掉。极度病态的矩阵(条件数很大)会让解对输入误差异常敏感,结果可能不可信。本工具限制在 6×6 是为了让界面聚焦教学与快速验证;大规模稀疏系统请用 MATLAB、NumPy 等专业工具。
常见问题
Q可以解哪些方程?
单变量模式:任何能写成 f(x)=0 的方程,只要 f 可以含 sin、cos、exp、log、sqrt、pow 等。线性方程组模式:任意 2×2 到 6×6 的方阵 Ax=b,包括超定或欠定的特殊情形(用 RREF 揭示)。
Q为什么要给我"区间"?不能直接全找吗?
数值求根的本质是"在指定范围内搜索",因为实数轴无穷大,不可能全域扫描。区间 [a,b] 告诉算法把精力集中在哪里。如果你不确定根在哪,先用 2D 绘图工具画出 f(x),目测零点大致位置,再回来设置区间。
Q二分法为什么一定收敛?
因为它每一步都把"含根区间"的长度减半。经过 n 步,区间长度是初始值的 1/2ⁿ,根被锁定在一个任意小的范围里。前提只有两个:函数连续,且初始区间两端变号。这是零点存在定理的直接应用。
Q为什么我找不到 x=1 这个根?我的方程是 (x−1)² = 0。
因为 (x−1)² 在 x=1 处只是"擦过"x 轴而不穿过,符号在两侧都为正,不发生变号。二分法依赖符号变化来定位根,因此对偶数重根无能为力。可以试试牛顿法(我们的科学计算器/脚本计算器支持 derivative 与迭代),或把方程改写为 |x−1| = 0。
Q什么是 RREF?它比普通消元强在哪?
RREF(行最简形)是高斯消元的最终形态:每个主元都是 1,主元列其他元素全为 0。它把方程组的"骨架"完全暴露出来——有多少独立方程、有多少自由变量、是否有解、解是否唯一,都能直接读出。普通阶梯形只回答"怎么解",RREF 回答"解的结构是什么"。
Q什么是部分主元高斯消元?为什么不能直接除?
在消元的每一步,把当前列绝对值最大的行换到对角位置,再开始消元。这样做可以避免除以很小的数,从而抑制浮点误差。如果不选主元,遇到对角元接近 0 的矩阵,结果可能完全错误,即使数学上方程组有唯一解。
Q为什么我的方程组"无解"?我确定它该有解。
可能的原因:1) 方程组本身矛盾(如 x+y=1 与 x+y=2);2) 系数输入错误,把某行写成了另一行的倍数;3) 矩阵接近奇异,浮点消元把它误判为奇异。打开 RREF 模式看一眼:如果某行变成 0 0 0 | 非零,就是真的无解;如果是 0 0 0 | 0,则实际上有无穷多解。
Q为什么 5 次以上方程没有"求根公式"?
这是伽罗瓦理论的著名结论:一般五次及以上多项式的根不能用系数的有限次加减乘除与开方表达。这不是"还没找到",而是"已被证明不存在"。因此对高次方程,数值方法(二分、牛顿、弦截)是唯一可行的路径。这也是数值分析成为一门独立学科的根本原因。
Q二分法和牛顿法哪个好?
二分法:稳、必收敛、只需函数连续,但慢(线性收敛)。牛顿法:快(平方收敛,每步精确位数翻倍),但需要可微、需要好初值、可能发散或陷入循环。本工具用二分法是因为它对用户更友好——不用挑初值,不会发散。要求速度,可在脚本计算器里自己实现牛顿迭代。
Q线性方程组最大支持多大?
最高 6×6。这个规模足以覆盖教科书习题、考研题与大多数工程小算例。真正的工程问题(结构、电路、流体)动辄上万维,需要稀疏矩阵与迭代法,那是专业数值软件的领域。
Q计算会保存在服务器上吗?
不会。所有扫描、消元、回代都在你的浏览器里进行。表达式与系数从未离开本机,因此也不会出现在任何日志或历史记录里。