c++求n次方_如何求一元三次方程

d80afdf7a9d06fd00430abb0bf8cfd93.png

我们知道,一元二次方程

的根可以通过求根公式
计算

那一元三次方程的根如何求?进行百度的话,我们可以发现一元三次方程可以采用卡尔丹公式和盛金求根公式来计算。下面用最基础的代数方法来理解卡尔丹公式怎么来的。

一元三次方程

1、为了解最初的方程,我们可以先考虑将方程变形成

2、这个形式可以进一步化简。回顾一元二次方程的求根公式,我们采用的是配方法,将其变成和的平方的形式然后开方即可得到求根公式,这里最高次是3次,所以我们可以考虑配立方。

因为

和1中的式子比较发现,我们可以把
这项并入和的立方里面。于是1中的方程可以成

然后,令

于是上面的方程可以变形成为

整理可得

故而我们可以得到一个结论,所有的一元三次方程都可以化成上面那样的简单形式,因此只要找到

这个方程的解法,我们就能够解出所有的一元三次方程了;

3、

的解法。关于这个方程的解法,首先我们知道,三次函数的值域是R,因此这个三次方程一定至少有一个实根。

不妨设这个实根

,我们得到一个新的方程,将这个方程两边同时立方,得到

显然这两个方程可以是同一个方程。比较系数,得到方程组

根据一元二次方程的韦达定理,不难发现A和B就是方程

两个根

如果想不到韦达定理,单纯消元也可以得到上面的一元二次方程。

因此不难解出

这样,我们可以用得到的A和B的值求出

从而得到原方程的根。

但这里会出现一个问题,求根公式里面有根号,A B不一定求出是个实数,如何确保

是实数?

由一元二次方程有判别式可以推知,显然一元三次方程也有判别式,而且判别式通过上面的计算已经知道了

因此按如下情况讨论。

为了便于说明,需要提前说明几个概念:

a.定义

,即虚数。在虚数的范围内,负数允许开平方;

b.

c.

;

d.在虚数范围内,

方程有三个根,

可以计算出,

,因此若设
,那么该方程的三个根可以表示为

PS:c的证明可用欧拉公式证明,证明将给在文章末尾。

有了以上几个概念,我们来讨论一元三次方程根的情况

由上述d可知,

;同样的,
结果可以表示为
因此AB可以组合出9种情况。但我们前面有
,因此实际上满足条件的A B仅有三组。

即t有三个根,分别为:

;
;

1.若

,显然
都是虚数,因此一元三次方程仅有一个实根和两个虚根;

2.若

,则A=B,那么
,且为共轭虚数之和,因此一元三次方程有两个相等实根和另一个实根;

3.若

都是实根,故而一元三次方程有三个不相等的实根。

以下为拓展内容


1.上述c的证明。

证:已知欧拉公式,

, 令

则由欧拉公式,可知

因此,

同理,

故而,

,证毕。

2.由求根公式有时候算出的数字极其鬼畜,但实际上结果却非常简单。

比如方程,

,采用求根公式计算,算出判别式Δ>0,因此仅有一个实根。

算出实根x=

本来这就是这个方程的实根,但简单估算一下,发现x=4也是原方程的实根。我们拿科学计算器将上面那一大串数字输入以后,得到的结果也是4.

那么上面那一大串数字是如何等于4的。

,即要将这个无理根式开三次方。这里采用如下技巧:

考虑到

,找到a和b的值令其右边等于
,那么a+b就是
开立方所得的数字。

,因此可以设立方根为
,那么
和上式对比,发现
考虑到m+2>2,因此m>0,取
。 将m值代入m+2并立方,发现立方的结果就是

故而

同样的方法,可以得到

因此

PS:如果用上述方法求出m后,并不能还原,那么说明原无理式不能开立方,那就是一个纯粹的无理数了。

3.若判别式Δ<0,算出的A B为虚数,那么如何将虚数化成实根,并求出另外两个根。

比如方程

,采用求根公式计算,得到Δ<0,且一个实根为

将虚数共轭虚数之和化成实数,一般采用欧拉公式。 由1中的证明,我们可以做如下变化。

然后采取三倍角公式求出cos(t/3)后代入即可得到确切的实数解。

但如果方程解如果是特殊的有理数解,和2中的方法类似,采用特值的方法,看看能不能分解出相应的因式从而简化计算。

,即有

实部相等,虚部相等。有

b是多少我们不关心,最终结果会消去,我们只要求出a就可以了。 因此消去b,整理,最终可以得到一个仅含a的方程。

……式子1

我们要看这个方程是否有特解,即有理数解。等式右边为一个带根号的无理数,要找到a的有理根解,显然必须要保证

再稍加整理,得到
确保k是有理数,考虑a=1,代入式子1当中,发现式子成立 因此我们找到了a=1 于是原方程的一个根为

然后采用分解因式的方式。令

将右边拆开,对比系数,得到
所以有
,解得

因此原方程的三个根为

最后的话:码这些字比想象中还要花时间。。本来打算把一元四次方程解法也写上的,发现时间严重超了。。只能下次有机会再码了~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值