关于一元三次方程的一些事
reinforest · · 算法·理论
安利一下我的博客
定义
如果一个整式方程经过整理后只有一个未知数,并且未知数的最高次项等于
一元三次方程是形如
例 1:观察下列方程,它们是一元三次方程吗?
解析:3. 5. 是,1. 2. 4. 不是。因为 1. 不满足整式方程;2. 没有说
a \ne 0 ;3. 因为\sqrt{a^2+1} \ge 1 ,所以隐含了三次项系数不为0 的条件;4. 化简后是6x^2+4x+1=0 ,最高次项为2 ;5. 化简后是3x^3+7x^2+5x+1=0 ,是一元三次方程。
求解一元三次方程
研究一个代数问题,可以按照从特殊到一般的方法层层递进。
配立方法
对于一元二次方程,我们可以把它配成
但是所有的一元三次方程都可以使用配立方法吗?
例2:尝试使用配立方法解如下方程:
解析:
对于第一个:
\\ x^3+3\cdot x^2 \cdot 2+3 \cdot x \cdot 2^2 +8 &= -1 \\ (x+2)^3 &= -1 \\ x &= -3 \end{aligned} 但是对于第二个方程,无论如何都无法使用配立方法求解。
考虑什么样的方程可以使用配立方法求解?
尝试展开
因而得到数量关系
例3:判断如下的方程是否可以直接使用配立方法求解。
解析:分别计算三个方程的
b^2-3ac 即可。对于第一个方程,
b^2-3ac=36-33 \ne 0 ,所以不行;对于第二个方程,
b^2-3ac=144-144 = 0 ,所以可以;对于第一个方程,
b^2-3ac=48-48 = 0 ,所以可以。
因式分解法
如果我们能够很容易地看出来方程的一个根,那么可以考虑把这个一元三次方程“降次”,变成一元二次方程然后求解。
例4: 在实数范围内解下列方程。
解析: 对于第一个方程,代入
x=-1 ,可得左式=-4+9+x-6=0 ,所以x=-1 是原方程的一个根,所以原方程必然有一个因式为x+1 。考虑凑出
x+1 ,可得4x^3+4x^2+5x^2+5x-6x-6=0 ,即4x^2(x+1)+5x(x+1)-6(x+1)=0 ,提出公因式x+1 ,可得(4x^2+5x-6)(x+1)=0 ,最终可以因式分解成(4x-3)(x+2)(x+1)=0 。所以原方程的三个实数根分别为
x_1=\frac{3}{4},x_2=-2,x_3=-1 。对于第二个方程,可以看出
x=1 是原方程的根,所以原方程可以因式分解成(x^2+7x+12)(x-1)=0 ,进而因式分解成(x+3)(x+4)(x-1)=0 。所以原方程的三个实数根分别为
x_1=-4,x_2=-3,x_3=1 。对于第三个方程,可以试出
x=2 是原方程的根,所以原方程可以因式分解成(3x^2+8x+16)(x-2)=0 。该式子不能继续因式分解了。所以原方程的唯一实数根为
x=2 。
卡尔丹诺公式
先考虑一种特殊形式的三次方程:
接下来就是处理这个方程比较神奇的地方:令
代入可得
整理可得
因为
如果这样可行,我们可以得到这样的方程:
第二个式子等式两边同时三次方,可得
因此可以解得
所以
一般三次方程的转化
对于一般的一元三次方程
考虑令
x=y+m ,确定m 的取值,可以消去二次项。我们先代入x=y+m :& ax^3+bx^2+cx+d \\= & a(y+m)^3+b(y+m)^2+c(y+m)+d \\= & ay^3+(3am+b)y^2+(3am^2+2bm+c)y+ (am^3+bm^2+cm+d) \end{aligned} 所以令
3am+b=0 ,即m=-\frac{b}{3a} 是可以令二次项系数化为0 的m 。
例5:运用以上方法解方程
首先把它转化成缺项形式,令
m=-\frac{b}{3a}=1 ,代入x=y+1 可得所以 $p=-12,q=16$,代入以上公式,可得 $u=\sqrt[3]{-\frac{16}{2}+\sqrt{\frac{16^2}{4}+\frac{(-12)^3}{27}}}=-2,v=\sqrt[3]{-\frac{16}{2}-\sqrt{\frac{16^2}{4}+\frac{(-12)^3}{27}}}=-2$。 所以原方程的一个根为 $y=u+v=-4$,此时 $x=y+1=-3$。 将原方程进行降次,可得 $(x+3)(x^2-6x+9)=0$,即 $(x+3)(x-3)^2=0$,所以原方程有两个根 $x_1=3,x_2=-3$。
注意以上的公式不能求出一个一元三次方程的所有根,在求出一个根之后,还需要进行降次得到另外的根。
复数的引入
请尝试解方程
如果还是使用以上的方法解方程,你会发现这个方程的根是“无意义的”:
但是,对于原方程,容易发现代入
那么是哪里出问题了呢?
假设我们令
神奇!把它展开以后,
这启示我们,可能
复数范围内的解
卡尔达诺公式不能求出一个缺项的一元三次方程的所有解,那么是否有可能把这个公式“升级”,使得它能够求出所有解呢?
在复数范围内,对一个数
首先在实数域中可以因式分解:
然后使用求根公式,
所以在复数域中,令
我们再回顾一下卡尔达诺公式的推导过程,我们实际上是在解方程
因此得到了
根据以上的推导过程,设
原来在同时三次方的过程中,会导致最终出现增根。例如
舍去增根以后,就只有三个根满足条件了。
这样我们就得到了一元三次方程的通解了。
盛金公式
用以上的方法解一元三次方程是非常麻烦的。首先我们需要进行代数变形去除掉二次项,然后代入以上的公式。代入以上的公式会导致解的形式可能出现复数,不是很直观,需要进行化简才能得到最终结果。这样对计算机很不友好。如果三次方程的系数比较奇怪,运用以上的公式以后可能都不知道从何化简。
有没有一些更直观的公式呢?接下来我们介绍盛金公式。
对于一般的一元三次方程
当
当
当
当
例6:解以下方程。
解析: 对于第一个方程:
a=1,b=0,c=3,d=1 ,计算得A=-9,B=-9,C=9 ,计算\Delta=405>0 ,运用盛金公式2 。 计算y_{1,2}=\frac{3}{2}(9\pm 9\sqrt{5}) ,所以x=\frac{-\sqrt[3]{\frac{3}{2}(9+ 9\sqrt{5})}-\sqrt[3]{\frac{3}{2}(9- 9\sqrt{5})}}{3} 。对于第二个方程:
a=5\sqrt 2,b=-18,c=6\sqrt 2,d=4 ,计算得A=144,B=-288\sqrt 2,C=288 ,计算\Delta=0 ,运用盛金公式3 。 计算K=\frac{B}{A}=-2\sqrt 2 ,所以x_1=\frac{18}{5\sqrt 2}-2\sqrt 2=-\frac{\sqrt 2}{5} ,x_2=x_3=-\frac{-2\sqrt 2}{2}=\sqrt 2 。
三次方程韦达定理
用求根公式推韦达定理固然可行,但是我们可以用一种更简单的方法。
设一元三次方程
对比系数可知
运用三次方程韦达定理,我们可以快速解决一些代数问题。
例7:已知
解析:
&\frac{1+x_1}{1-x_1}+\frac{1+x_2}{1-x_2}+\frac{1+x_3}{1-x_3} \\ =& \frac{2}{1-x_1}-1+\frac{2}{1-x_2}-1+\frac{2}{1-x_3}-1 \\ =& 2\left(\frac{1}{1-x_1}+\frac{1}{1-x_2}+\frac{1}{1-x_3}\right)-3 \\ =& 2\left[\frac{(1-x_2)(1-x_3)+(1-x_1)(1-x_3)+(1-x_1)(1-x_2)}{(1-x_1)(1-x_2)(1-x_3)}\right]-3 \\ =& 2\left[\frac{3+(x_1x_2+x_2x_3+x_3x_1)-2(x_1+x_2+x_3)}{1-x_1x_2x_3+(x_1x_2+x_2x_3+x_3x_1)-(x_1+x_2+x_3)}\right]-3 \end{aligned} 因为
x_1,x_2,x_3 分别为方程x^3-x^2-1=0 的根,所以\begin{cases}x_1+x_2+x_3=1 \\ x_1x_2+x_2x_3+x_3x_1=0 \\ x_1x_2x_3=1 \end{cases} 代入原式
= 2 \times(\frac{3+0-2}{1-1+0-1})-3=-5 。
三次函数的图像与性质
形
用几何画板画出
能够发现,一个普通的三次函数有最多
当三次项系数
- 该函数在
(-\infty,x_1] 中单调递增; - 该函数在
(x_1,x_2] 中单调递减; - 该函数在
(x_2,+\infty) 中单调递增。
当三次项系数
- 该函数在
(-\infty,x_1] 中单调递减; - 该函数在
(x_1,x_2] 中单调递增; - 该函数在
(x_2,+\infty) 中单调递减。
数
顶点
我们知道三次函数
那么我们令
也就是说,当
如果
顺便我们也求出来了原函数存在两个顶点的充要条件,就是
对称中心
一个三次函数的对称中心就是两个顶点的中点。如果我们代入公式,计算
看起来和二次函数的对称轴公式很像。把对称中心的横坐标求出来,代入原函数就是对称中心的纵坐标了。
计算一元三次方程的近似根
在计算近似根前的操作
我们计算近似根,首先要知道这个方程的根的分布是什么样的。为了论述简单,我们只考虑三次项系数为正数的情况,如果是负数,那么可以先让等式两边同时乘以
我们不妨先把顶点求出来,拿出公式:
-
如果
b^2-3ac<0 ,那么函数f(x)=ax^3+bx^2+cx+d 不存在顶点,也就是说这个函数在(-\infty,\infty) 是单调的,只能有1 个零点; -
如果
b^2-3ac=0 ,回顾“配立方法”,这个是这个三次方程能够配立方的情形,因此只有一个实数x 满足方程,也只能有1 个零点。 -
如果
b^2-3ac>0 ,也就是原函数有两个顶点(x_1,f(x_1)),(x_2,f(x_2)) ,根据这种三次函数的单调性有f(x_1)>f(x_2) (因为我们钦定三次项系数为正数),这个时候需要讨论两个顶点关于0 的大小关系,根据零点存在性定理可得到以下结论:- 如果
f(x_1)>f(x_2)> 0 ,那么原函数只有1 个零点,在区间(-\infty,x_1) 中; - 如果
f(x_1)>0=f(x_2) ,那么原函数有2 个零点,一个在区间(-\infty,x_1) 中,另一个为x_2 ; - 如果
f(x_1)>0>f(x_2) ,那么原函数有3 个零点,分别在区间(-\infty,x_1),(x_1,x_2),(x_2,+\infty) 中; - 如果
f(x_1)=0>f(x_2) ,那么原函数有2 个零点,一个在区间(x_2,+\infty) 中,另一个为x_1 ; - 如果
0>f(x_1)>f(x_2) ,那么原函数有1 个零点,在区间(x_2,+\infty) 中;
- 如果
零点存在性定理:设函数是
[a,b] 上的连续函数,且存在不等式f(a)f(b)<0 ,则在(a,b) 上,至少存在一个数x ,能够使得f(x)=0 成立。
至此我们只需要解决在一个区间上有且只有一个零点的情况了。
二分法
二分法是求近似根比较基础的方法,易于理解。
原理:零点存在性定理。
步骤:首先选取一个区间
- 取
[a,b] 的中点m=\frac{a+b}{2} 。 - 如果
[a,b] 的精度已经满足要求(也就是|b-a|<\varepsilon ),那么m 就可以作为我们要求的近似根。否则比较f(a)f(m) 与0 的大小关系。- 如果
f(a)f(m)>0 ,令a \leftarrow m 。 - 如果
f(a)f(m)<0 ,令b \leftarrow m 。
- 如果
- 重复 1. 2. 的操作即可。
牛顿迭代法
牛顿迭代法是求近似根较为常用的方法,其特点是方法简单,收敛速度快。但前提是能够知道原函数的导数。每迭代计算一次,牛顿迭代法结果的有效数字将增加一倍。
原理
对于一个函数
所以对于函数上的一个点
步骤
步骤就很简单了,对于区间
然后每次计算:
一直迭代下去即可得到精确的答案。
例8:分别用二分法、牛顿迭代法求方程
解析:以下表格是用二分法的过程
迭代次数 a b m f(m) 新区间 0 0 1 0.5 -0.375 [0,0.5] 1 0 0.5 0.25 0.2656 [0.25,0.5] 2 0.25 0.5 0.375 -0.0723 [0.25,0.375] 3 0.25 0.375 0.3125 0.0930 [0.3125,0.375] 迭代
3 次只能保证小数点后2 位的精度。在牛顿迭代法中,我们计算
f'(x)=3x-3 。这个是使用牛顿迭代法的结果。
迭代次数 x_n f(x_n) f'(x_n) x_{n+1} 0 0.500000 -0.375000 -2.250 0.333333 1 0.333333 0.037037 -2.667 0.347222 2 0.347222 -0.000365 -2.638 0.347296 3 0.347296 -3.7×10^{-8} -2.638 0.347296 迭代
3 次即能获得小数点后6 位的精度。效率较高。