昨天做导数题,做了一阵子之后,需要解一个一元三次方程
,然后我就懵了,我初中因式分解没学好啊,这可咋解?
网课上,老师讲题的时候,解法是把二次项拆开。
即:
可是问题在于我不知道什么时候该拆;就算知道要拆,也不知道该拆哪一项、拆成多少啊?
于是只能换一个方法了。
于是想到了去年数学课讲过的一个奇怪的定理,不知其名:
设
为
次多项式(
),若该多项式有一有理零点
(
与
互素),则
,
。
证明:
如果
(
与
互素)是
的一个有理零点,则
为本原多项式,且在
中,
。
令其商
。
比较
的首项和常数项系数,即有
,
。
故得证[1]。
有了这个定理的支撑,就可以用一个奇怪的方法解决因式分解了。
第一步:试根
观察原方程
发现,
,
。
那么现在需要找一个有理数
满足
,
。
令
,
,代入
发现
,原方程成立。
其实如果数感比较好的话,不需要上面的定理,也能通过瞪眼法发现
时方程成立。
于是现在试出了
一根。
这意味着,原方程可以化为
的形式。
至于省略号内的内容怎么求,需要进一步运算。
第二步:进行多项式除法运算
这里就和小学学过的大整数竖式除法比较相似了。
小学大整数竖式除法是由高位向低位进行的,那么同理,这里需要对多项式进行降幂排列,并对缺项进行补零操作:
。
然后用
作为除式,原多项式作为被除式,进行竖式除法运算即可。
过程与小学大整数竖式除法类似。
首先把竖式部分的「头」写出来:
然后从高次幂到低次幂运算即可。
对于被除式第一项
,系数为
;
当中未知数的系数也为
,于是除出来的
的系数是
(
):
然后仿照小学知识,把
和
相乘,写到下一行,然后上下相减:
继续用新得到的
去除以
,显然除出来的
的系数是
(
):
然后再把
与
相乘,写到下一行,上下相减:
再用新得到的
去除以
,重复上面的步骤:
至此,余数为零,竖式除法运算结束。
那么原多项式的因式分解结果即为:
一眼就能看出,
尚未完全分解,遂继续分解为
。
那么:
至此,因式分解完毕,可以轻松解出
。
小结:
由于笔者本人数学水平较差,很多时候遇到需要因式分解的情形(尤其是三次式)并不能轻松地分解开,诸如拆项等方法不能做到灵活使用。
在高中阶段,一般遇到的因式分解都是整数,所以这种列竖式的方法大概还是比较简单通用的。
本原多项式
中文名本原多项式
外文名Primitive Polynomial
所属学科近世代数
类型多项式
高斯引理本原多项式的乘积还是本原多项式
性质本原多项式不等于零
概述一个n次不可约多项式,如果只能整除1+Z^2^n-1
而不能整除其它1-Z^L(L<2^n-1),则这种不可约多项式就称为本原多项式。
本原多项式的另外一种定义:系数取自GF(p)上,以GF(p^m)上的本原域元素为根的最小多项式。
因为本原多项式一定以n=p^m-1级元素为根,p^m≡1(modn),所以本原多项式的次数必然是m。
对于一个n次多项式,其本原多项式一般有若干个。下面将给出的一个算法,是求解在给定任意n值及一个本原多项式的情况下,其余本原多项式的求解方法。该算法的意义在于提供了同一n值情况下若干个可选的本原多项式,这样就允许在构造应用系统时有不同的选择方案。
已知一个n级本原多项式,求解其余的本原多项式按以下步骤进行。
(1)首先确定n级本原多项式的个数λ(n),λ(n)即是n级本原多项式的个数。
(2)求出小于2n-1且与2n-1互素的所有正整数,构成一个集合〔Si〕,并重新排序,使〔Si〕中元素从小到大排列。
(3)排除〔Si〕中不适合的数
排除〔Si〕中形如2j(j为正整数)
排除〔Si〕中所有同宗的数。即从〔Si〕中从后到前搜索,每取一个数即做2K×Si,直到大于2n-1,然后减去2n-1,用差值在〔Si〕中向前搜索,如果有相同的数则将Si排除,否则保留。再取Si-1按同样过程做一遍,直到S0。
本原多项式排除〔Si〕中有倍数关系的数。即从〔Si〕中从后到前搜索,每取一数即向前查询一遍,最后〔Si〕中剩下的数即为本原抽样数,其个数一定为λ(n)-1。
(4)根据已知的一个n级本原多项式,为其设置初始状态00001(n个),求出其M序列{Ai}(长度为2n-1)。
(5)依次从Si中取出本原抽样数,每取出一个抽样数Si,即可求出一个本原多项式:以Si对{Ai}进行抽样,就可产生长度为2n-1的另一M序列{Si},在{Si}中找到形如00001(n位)的序列段{Mi},并提取包括{Mi}为前n项的2n长度的序列:
Am+0,Am+1,,Am+n-1,
0 0 1
Am+n,Am+n+1,Am+2n-1
X X X
欲确定的Ci可用下列方程组确定;
C1=Am+n
C2=Am+n+1+C1Am+n
C3=Am+n+2+C1Am+n+1+C2Am+n
常用本原多项式下表为常用本原多项式:
Matlab中调用本原多项式的指令:
primpoly(m);
primpoly(m,'all');
primpoly(m,'all','nodisplay');
注意返回值是按照十进制表示的。
含义在不同的分支数学,本原多项式有不同的含义:
域论中,一个本原多项式是有限域CF(pm)有限扩张的本原元的最小多项式(域论)。