一元四次方程的一个一般解法

您所在的位置:网站首页 三次函数解法配方法 一元四次方程的一个一般解法

一元四次方程的一个一般解法

2024-07-02 12:19| 来源: 网络整理| 查看: 265

前言

网上不时会出现一些解高次方程的视频,其实绝大多数都包含有猜根的成分,当然猜根一般是指猜有理根,倒是有个有理根定理作为理论支撑。但见多了这种视频有些审美疲劳觉得无趣了,于是这里就考虑出一篇专栏谈谈四次方程的一般解法

问:为什么不出3次方程的?

答:这个说来有点话长,简而言之就是结果难以化简,这个放到文末再提。以下对于3次方程的处理一律猜用有理根定理解决,解决不了才用求根公式

另外,以下的计算部分大部分由计算机完成,不过让计算机帮算的只涉及实数的四则运算,并不会涉及一些高级算法,也就是假如时间足够可以徒手算完的部分

正文理论推导:

这个理论推导思路相信是不难理解的,且这个方法个人认为是理解门槛最低的方法之一,因此读者们尽量跟上思路

另外,毕竟这是针对一般情形的推导,因此会涉及不少字母运算,注重领会思路即可

设一元四次方程

ps:这里的e是系数,并非自然常数

先考虑平移换元,令整理得:

这里字母比较多,需要稍微理一下,这是换元后关于t的一元4次方程,因此t是未知数,λ是待定参数,其余的为常数

至于怎么展开的?无须多言,可以按多项式运算暴力拆开,也可以用二项式定理展开再合并。这里是用计算机帮算的,但由于计算的成分只是四则运算,因此没有高科技因素

令t^3系数为0消去3次项,即

回代得到:

这时就消去了3次项

接下来再引入待定参数m进行配方

考虑将4次项配成完全平方,此时需要减去才跟原来的t^4相等,把这多出的两项与后面的二次式合并得:

此时除了第一项外,剩余的部分就是个二次式,考虑令其判别式

这样令的目的是使得剩余部分的二次式也进行配方,这样就可以对原式进行因式分解了,如果配成的平方项前面是减号,那就平方差拆开两个二次项之积;如果配成的平方项前面是加号,那就凑个i²再用平方差(毕竟4次方程可以有虚数根嘛)

也即

这是一个关于m的3次方程,解出一个m后回代即可将原方程进行配方

至于解这个3次方程嘛,就先搁置了,总之通过上述思路了解到任何一个一元4次方程都能转化到解一个一元3次方程,那么该法的精髓就算get到了

这个转化并非直接把原来的4次方程转化为3次方程,而是在推导过程中涉及解一个3次方程,越过这座高墙,问题就迎刃而解~

至于一般的求根结果,个人认为已经没有推的必要了。且不谈手撕方程,计算机直接记录这个求根的结果,也未必是最好的算法,毕竟笔者在一开头埋了一个伏笔,就是利用求根公式解出的3次方程的结果未必是最简的。

简单实践

这里先给几个锦囊,也是前置的知识:

(1)有理根定理

参考:

https://baike.baidu.com/item/%E6%9C%89%E7%90%86%E6%A0%B9%E5%AE%9A%E7%90%86/9393361

(2)长除法(带余除法)

参考:

https://baike.baidu.com/item/%E5%B8%A6%E4%BD%99%E9%99%A4%E6%B3%95/7808770?fr=ge_ala

这两者配合使用是因式分解的利器

推导完了理论,我们随便找几道题当练习(这种题一找一大堆了属于是)

例(1):

这是已经退化的形式,因此直接待定系数配方:

将剩余的2次式配方,则令判别式为0:

整理得:

根据有理根定理,若方程有有理根,则q,p只能取自以下的组合:

将这(4*4)*2种情况逐一代入检验,得到为方程的有理根

好,接下来还是否需要解出其余的两根呢?不需要了,因为这个关于参数m的3次方程,3个值都能使判别式Delta为0,也即能使原方程配方。因此既然得到了这有且仅有一个的有理根,把这个m值带回即可将原方程配方:

从而

两部分分别运用一元二次方程求根公式求解即得:

原题的解法是双式子相乘,这个放后文再提,本质上也是一种猜特殊数字的方法

例(2):

以下是利用上面的思路写的程序的运行过程:

化4次项系数为1:

令消去3次项得:

计算机:系数还不小,但我是堂堂计算机!就这点位数我还怕你?[滑稽]

引入待定参数配方得:

另剩余的二次式判别式=0得:

数含蛮大的,不过不慌,俺有MMA[滑稽]:

对最高次项和常数项(正负号可以先不管)进行质因数分解。上面的意思是262144=2^18,1190695=5*11*21649。但似乎没找到直接生成一个整数的所有因子的函数,于是找了位在某乎认识的懂编程的老师帮写了个程序:

笔者也是才懂得一些入门的Wolfarm语法,因此这个程序有待有空研究~

因此利用有理根定理,把所有的情况组成的有理数代入检验,最终得到唯一的有理根:

当然我是直接用\\Factor来分解滴:

虽然MMA作为专业软件代码似乎没有开源,因此我也不知道内置的功能是如何分解的。但我认为按有理根定理试出有理根一定是一个可行且效果良好的程序!毕竟计算器最擅长计算嘛,计算机处理器现在是GHz的频率,每秒能计算约10^9次加减运算,乘除法约10^7~8次,对于这几十次的试根而言戳戳有余了

因此带回原式即可配方:

两部分分别运用一元二次方程求根公式求解即得:

换回x表示,即

原题的解法是考虑系数的对称性,由x≠0,则两边同除x^2得:

再把x-1/x视为整体求出两个根,再分别求解得到的两个关于x的一元二次方程。

这种办法在特殊的对称系数时才适用。

计算机:如果我是小镇做题家,那么我会想出花哨的方法解这道题。但我是堂堂计算机,我强大的算力不屑于掌握这种特殊的技巧[滑稽]

制作解一元四次方程的程序

就以解为例

直接用MMA解不出解析的根:

这时就可以考虑借助前文提及的思路自己写一个解方程的程序:

嗯,经过不少次的调试终于完成了,可以看出输出结果是4个解析根,说明程序很成功!

这里简单作些解释(前提是知道一些Wolfarm语法):

a~e为定义的对应原方程系数的5个变量(注意这里的e是参数,自然常数在MMA语法里是用大写字母E表示)。

定义一个多项式函数f(x),同时把4次项系数化为1。

至于为什么写成f[x_]:=,这里用形式参数定义函数的一种写法,我也不懂为啥,就当程序语言的一种约定

再定义一个多项式g(t),是f(x)平移消去3次项后的结果

再定义一个多项式h(t),是g(t)减去预配好的4次项后剩余的二次项部分,也即h(t)是剩余部分构成的一个二次函数

令h(t)的判别式等于0,解关于参数m的3次方程,取第一个解赋值给字母n

至于为什么取第一个解,因为据我所观察,MMA解方程时一般都会把有理根先解出来,合理猜测或许内置的算法可能包含有理根定理哈哈

定义一个函数p(t),其等于h(t)中m替换为解出的n后的结果,也即已经是一个完全平方形式的二次函数

最后解方程,那两个比较长的因子怎么来的?是我暂时没找到平方差分解的函数,于是自己推演把分解后的结果输进去了。

具体的分解思路就是先提取二次项系数,将t^2系数化为1,这时一次项系数除以2就是配方之后~(t+~)^2括号内的~,而前面的~就等于二次项系数。这个相信不难理解,是初三时学的配方的知识嘛

输入两个分解好的因式后,按替换规则把t换回用x表示,然后再丢进去解方程就容易很多了。(毕竟这个程序的最大功劳就在于把原式拆成的两个一元二次方程相乘)

复展开是将根展成a+bi的形式,相当于一种有目的的化简(//Simplify做不到这点)

最后清除所有变量,以免已赋值的参数对后续的程序造成影响

数值解检验是通过的:

保存一下源代码以便后续使用

这里没有Wolfarm的选项,于是随便选了一个语言模式保存了,反正拷贝也就一下的事

当然还可以再通过嵌套删减一些多定义的函数,不过由于专栏有公式条数限制,这里就不附图聊~

简单总结

此篇专栏主要写了一般的四次方程的一种解法:先平移消去3次项,再待定系数配方(配方部分需要求解一个一元三次方程),最后利用平方差因式分解得到两个关于t的一元二次方程,求解出4个t后,再换回x表示即得到了原方程的4个根。(具体过程可参考前文的理论推导和实践)

其中解三次方程中,我们采用的是有理根定理试出有理根的方法。如果这个三次方程没有有理根那么这个4次方程的解就很复杂了~

对于一般三次方程的解法,全文没有提及,这是因为利用求根公式求出的解并不是简洁的形式。换而言之,利用求根公式求出的解是有待约化的,并不是只输入公式让计算机计算就完事的。如果要图一个解析解,根的约化和复杂度估计是必须要考虑的因素;而如果只图一个数值解。那么二分法/十分法/牛迭法都比输入求根来得方便。因此综上,高次方程使用求根公式求根不论是求解析解还是求数值解,都不是最优的方案。

至于为啥一般的三次方程套用求根公式求出的是待约化形式,就改天再写一篇来加以陈述(这是因为笔者是手动套过卡尔丹公式和盛金公式的,并非只是一些吃瓜群众一般只是嘴上提个“求根公式”就完事的)

另外,对于有理根定理,适用范围是所有整系数的一元高次方程,包括但不限于三次方程和四次方程。因此要设计一个求解析解的程序,有理根定理想必是排在程序的前头的,最后给有理根定理点个大赞!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3