数学计算 本地计算 开箱即用 内置示例 不留痕迹

一元二次方程求解器

输入 a、b、c 三个系数,得到判别式、两个精确根(有理根或化简根式、必要时给出共轭复根)与近似值,并列出韦达定理与抛物线顶点坐标。

一元二次方程人人会背求根公式,但手算常卡在两处:根号下的数开不干净、判别式小于零之后怎么办。这里把三个系数一填,先告诉你根的形态,再给精确形式(该化简的根式化到最简)和小数近似,韦达定理和顶点坐标附在旁边,验算讲题都用得上。

判别式 Δ = b² − 4ac 决定根的形态:Δ > 0 两个不等实根、Δ = 0 重根、Δ < 0 共轭复根——本工具三种情况都处理;韦达定理(x₁ + x₂ = −b/a,x₁x₂ = c/a)用于验算;顶点 (−b/2a, (4ac−b²)/4a) 画抛物线时用。

使用步骤

  1. 输入 a、b、c 三个系数(a 不能为 0)。
  2. 看判别式 Δ 与根的形态(实根 / 重根 / 复根)。
  3. 看精确根(分数或根式)与近似值对照。
  4. 看韦达定理与顶点坐标,验算或画图用。

计算原理与示例

判别式决定根的性质

判别式 Δ = b² − 4ac 决定根的情况:Δ > 0 有两个不等实根,Δ = 0 有两个相等实根(重根),Δ < 0 在实数范围内无解、对应一对共轭复根。求根公式是 x = (−b ± √Δ) / 2a,这也是配方法的一般化结果。

精确形式与根式化简

精确形式比小数更有价值。整数系数时工具会把根式化简:x² − 2x − 4 = 0 的 Δ = 20,√20 = 2√5,代入后约去公因子得到 x = 1 ± √5(≈ 3.236068、−1.236068)。根式化简的规则是把根号内的完全平方因数提到根号外(20 = 4 × 5)。系数含小数时无法保持可读的根式形式,工具会退回小数近似(6 位有效数字)。

韦达定理与抛物线顶点

韦达定理给出根与系数的直接关系:x₁ + x₂ = −b/a,x₁ · x₂ = c/a。不用解方程就能判断两根之和、之积与符号,常用于「已知一根求另一根」或参数题。抛物线顶点 (−b/2a, c − b²/4a) 则是函数的最值点:x² − 3x + 2 的顶点在 (1.5, −0.25),开口向上故为最小值。

计算依据:判别式 Δ = b² − 4ac 与求根公式 x = (−b ± √Δ)/2a;整数系数时对 Δ 做根式化简(提取完全平方因数)并约去公因子给出精确解,非整数系数给出 6 位有效数字的近似值;韦达定理 x₁ + x₂ = −b/a、x₁ · x₂ = c/a。

代码示例

JavaScript 判别式三分支

function solve(a, b, c) {
  const d = b * b - 4 * a * c;          // 判别式
  if (d < 0) {
    const re = -b / (2 * a), im = Math.sqrt(-d) / (2 * a);
    return { type: "complex", roots: [re + "+" + im + "i", re + "-" + im + "i"] };
  }
  if (d === 0) return { type: "double", roots: [-b / (2 * a)] };
  const r = Math.sqrt(d);
  return { type: "real", roots: [(-b + r) / (2 * a), (-b - r) / (2 * a)] };
}

solve(1, -3, 2);   // { type: "real", roots: [2, 1] }

Python cmath 处理复根

import cmath, math

def solve(a, b, c):
    d = b * b - 4 * a * c
    if d >= 0:
        r = math.sqrt(d)
        return ((-b + r) / (2 * a), (-b - r) / (2 * a))
    r = cmath.sqrt(d)                    # 复根
    return ((-b + r) / (2 * a), (-b - r) / (2 * a))

solve(1, -3, 2)    # (2.0, 1.0)
solve(1, 0, 1)     # 复根 ±i

常见问题

判别式小于 0 为什么没有实根?

求根公式里要对 Δ 开平方,而实数范围内负数不能开平方。此时两根是一对共轭复数(形如 a ± bi),本工具会给出这种形式,例如 x² + 2x + 5 = 0 的根是 −1 ± 2i。

√20 为什么要写成 2√5?

把根号内的完全平方因数提出来:20 = 4 × 5,所以 √20 = √4 · √5 = 2√5。化简后便于与其它根式合并,也便于估算(2√5 ≈ 4.472)。

韦达定理是干什么用的?

它给出 x₁ + x₂ = −b/a、x₁ · x₂ = c/a,不解方程就能知道两根的和与积,常用于已知一根求另一根、判断两根同号还是异号,以及构造以两数为根的方程。

系数 a 能等于 0 吗?

不能。a = 0 时方程退化为一次方程 bx + c = 0,只有一个根 −c/b(b 也不为 0);本工具会提示这已不是二次方程。

抛物线顶点坐标有什么意义?

顶点 (−b/2a, c − b²/4a) 是抛物线的最高点或最低点:a > 0 开口向上,顶点即最小值;a < 0 开口向下,顶点即最大值。判断根的范围与最值问题都要用到它。

为什么有的结果只显示小数?

当系数含小数(如 0.5x² + x + 0.5)时,精确根式形式读起来反而累赘,工具就给出小数近似。若想要精确形式,可以把系数同时乘以 10 的倍数化成整数再算。

输入的系数会被记录吗?

不会。系数只在浏览器里做四则运算与开方,不上传、不保存;计算历史仅存本机浏览器,可随时清空,无痕模式关闭即失效。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。