三次方程求解器

求解 ax³ + bx² + cx + d = 0
下一个

三次方程的一般形式为 ax³ + bx² + cx + d = 0,在复数域上总是具有三个根。输入四个系数后,求解器将根据卡尔达诺公式返回相应结果:当判别式非正时有三个实根;判别式为正时有一个实根和一对共轭复根;判别式等于零时则呈现双根情况。

求解器如何找到根

  1. 1

    输入系数

    四个数:a、b、c、d。首项系数 a 必须不为零,否则该方程属于二次方程而非三次方程。

  2. 2

    缺项三次方程

    求解器将方程平移 -b/(3a) 以消去二次项,从而得到 `t³ + pt + q = 0` 的形式。

  3. 3

    判别检验

    Δ = (q/2) ² + (p/3) ³ 决定根的分布情况: Δ > 0时存在一个实根; Δ = 0时存在一个重根; Δ < 0时通过三角函数可求得三个实根。

  4. 4

    向后移动

    在t空间中找到的每个根点均按-b/(3a)进行平移以恢复x值。求解器会在适用情况下按降序返回这些根点。

判别式的情形及其含义

Cardano算法根据判别式 Δ =(q/2) ² +(p/3) ³ 的符号,选择三条分支之一进行运算。三次图的几何结构与此完全对应。

案例表

判别式 图形形状
Δ > 0 1个实数,2个复共轭数 与x轴相交一次
Δ = 0 3个实数,且至少有两个相等 在x轴处与双根点相切
Δ < 0 存在三个不同的实根 与x轴相交三次

示例

对于 x³ − 6x² + 11x − 6 = 0(系数分别为 1、−6、11、−6):

  • 平移 −b/(3a) = 2 得到缺项形式:p = −1,q = 0。
  • Δ = (q/2)² + (p/3)³ = 0 + (−1/3)³ = −1/27 < 0,因此采用三实根(三角函数)路径。
  • 三角公式得出三个不同的实根 x = 1、2、3。

数值方面的考量

  • 当三个根值彼此接近时(即近三重根情况),会出现浮点误差。显示的根值在最后几位小数位上可能与精确值存在差异。
  • 极小的 a 值会使 b/(3a) 值增大,这会主导计算过程并降低精度。若 |a| 的值低于约 1e-12,则应改用二次方程进行求解。
  • 整数系数可获得最精确的结果:有理根将以其精确值呈现(仅保留小数点后的位数)。

相关方程

  • 二次方程ax² + bx + c = 0。请使用二次方程求解器(闭式解法,更简便)。
  • 四次方程ax⁴ + bx³ + cx² + dx + e = 0。法拉利方法可化为一个预解三次方程;此处未涵盖。
  • 缺项三次方程:将 b 设为 0 以跳过平移步骤,直接输入 x³ + px + q = 0

常见问题

该方程已不再为三次方程。此时求解器将无法继续处理,请切换至bx² + cx + d = 0的二次方程求解器。

在这种情况下,求解器会返回唯一的实根。另外两个根是复共轭对,Cardano公式可将其以闭合形式给出;若需要符号表达式,请将它们计算为 -x1/2 ± (√3/2) × i × 模

Cardano方法的数值实现由于浮点运算舍入效应,可能产生量级为1e-15的残差。所有小于1e-10的值均视为实数;该求解器已针对 Δ <0分支自动过滤掉这些残差。

四个系数仅会发送到服务器用于计算根,不会被存储。使用分步视图时,系数也会出现在页面链接中。

相关工具

此工具还提供其他语言版本