三次公式是三次方程的闭式解,即三次多项式的根。一个一般的三次方程的形式为
(1)
|
(系数 ,即
的系数,可以通过将整个方程除以
而不妨假设为 1)。Wolfram 语言可以使用内置命令精确地解三次方程Solve[a3 x^3 + a2 x^2 + a1 x + a0 == 0, x]。该解也可以用 Wolfram 语言代数根对象来表示,首先发出命令SetOptions[Roots,
Cubics -> False].
三次方程(以及四次方程)的解是由 Gerolamo Cardano (1501-1576) 在其著作 Ars Magna 中发表的。然而,Cardano 并非这些结果的最初发现者。三次方程的提示是由 Niccolò Tartaglia 提供的,而四次方程是由 Ludovico Ferrari 解出的。然而,Tartaglia 本人可能从其他来源得知了该解法。这个解法显然最初是由博洛尼亚大学一位鲜为人知的数学教授 Scipione del Ferro (约 1465-1526) 得出的。虽然 del Ferro 没有发表他的解法,但他将其透露给了他的学生 Antonio Maria Fior (Boyer 和 Merzbach 1991, p. 283)。显然 Tartaglia 在 1541 年左右从这里得知了解法。
为了解一般的三次方程 (1),合理的开始是尝试通过进行形式为的替换来消除 项
(2)
|
然后
(3)
| |
(4)
| |
(5)
|
通过令 ,
项被消去,因此
(6)
|
然后
(7)
| |||
(8)
| |||
(9)
|
因此方程 (◇) 变为
(10)
| |
(11)
| |
(12)
|
定义
(13)
| |||
(14)
|
然后使得 (◇) 可以写成标准形式
(15)
|
最简单的方法是进行 韦达替换
(16)
|
这会将三次方程简化为方程
(17)
|
通过乘以 可以很容易地转化为关于
的二次方程,得到
(18)
|
(Birkhoff 和 Mac Lane 1996, p. 106)。来自二次公式的结果是
(19)
| |||
(20)
| |||
(21)
|
其中 和
有时比
和
更便于处理。因此,对于
有六个解(对于
的每个根,对应于两个符号)。将
代回 (19) 得到三对解,但每对解都相等,因此三次方程有三个解。
方程 (◇) 也可以通过尝试从三次方程中提取 形式为 的项来进行显式分解,从而留下一个二次方程,然后可以使用二次公式进行分解。这个过程等价于进行韦达替换,但在激发韦达的“神奇”替换以及生成解的显式公式方面做得稍好一些。首先,定义中间变量
(22)
| |||
(23)
|
(它们与 和
在常数因子内相同)。然后,一般三次方程 (◇) 变为
(24)
|
设 和
暂时为任意常数。完全立方多项式方程满足的恒等式是
(25)
|
因此,如果一般三次方程没有 项(即如果
),则可以直接分解。但是,由于通常
,在 (25) 的两边都加上
的倍数——比如
——得到稍微复杂的恒等式
(26)
|
重新组合项后,即为
(27)
|
现在我们想匹配 系数 和
与方程 (◇) 的系数,因此我们必须有
(28)
|
(29)
|
将前者代入后者,得到
(30)
|
因此,如果我们能找到一个满足上述恒等式的 值,我们就从三次方程中分解出一个线性项,从而将其简化为二次方程。实现这一奇迹的试探解是以下对称表达式
(31)
|
对 取二次方和三次方得到
(32)
| |||
(33)
| |||
(34)
| |||
(35)
| |||
(36)
| |||
(37)
| |||
(38)
|
将 和
代入 (◇) 的左侧得到
(39)
|
因此我们确实找到了 (◇) 的因子 ,现在我们只需要分解二次部分。将
代入 (◇) 的二次部分并求解得到的
(40)
|
然后得到解
(41)
| |||
(42)
| |||
(43)
|
这些可以通过定义来简化
(44)
| |||
(45)
| |||
(46)
| |||
(47)
|
这样,二次部分的解可以写成
(48)
|
定义
(49)
| |||
(50)
| |||
(51)
|
其中 是多项式判别式(Birkhoff 和 Mac Lane 1996 对其定义略有不同,包括相反的符号),然后给出
和
的非常简单的表达式,即
(52)
| |||
(53)
|
因此,最后, 的原始方程的根由下式给出
(54)
| |||
(55)
| |||
(56)
|
其中 是原始方程中
的系数,
和
如上定义。这三个给出三次方程的三个根的方程有时被称为卡尔达诺公式。请注意,如果方程是韦达的标准形式
(57)
|
在变量 中,则
,
,且
,中间变量具有简单的形式(参见 Beyer 1987)
(58)
| |||
(59)
| |||
(60)
|
解满足韦达公式
(61)
| |||
(62)
| |||
(63)
|
在标准形式 (◇) 中,,
,且
,因此消除
得到
(64)
|
对于 ,消除
得到
(65)
|
(66)
| |||
(67)
| |||
(68)
| |||
(69)
|
卡尔达诺公式中 的方程没有显式出现的
,而
和
则有,但这并不能说明实根和复根的数量(因为
和
本身通常是复数)。但是,可以通过注意到,如果多项式判别式
,则一个根是实数,两个是复共轭;如果
,则所有根都是实数,并且至少有两个相等;如果
,则所有根都是实数且不相等。如果
,定义
(70)
|
(71)
| |||
(72)
| |||
(73)
|
这个过程可以推广到找到标准形式 (◇) 的任何方程的实根,方法是使用恒等式
(74)
|
(Dickson 1914)并设置
(75)
|
(Birkhoff 和 Mac Lane 1996, pp. 90-91),然后
(76)
|
(77)
|
(78)
|
如果 ,则使用
(79)
|
得到
(80)
|
如果 且
,使用
(81)
|
如果 且
,使用
(82)
|
得到
(83)
|
原始方程的解是
(84)
|
求解三次方程的另一种方法是使用拉格朗日预解式 (Faucette 1996)。设 ,定义
(85)
| |||
(86)
| |||
(87)
|
其中 是
(88)
|
的根,并考虑方程
(89)
|
(90)
|
对于 , 1, 2。相乘得到
(91)
|
可以写成 (88) 的形式,其中
(92)
| |||
(93)
|
Berndt (1994) 给出了一些由拉马努金发现的关于三次方程根的有趣的恒等式。