牛顿插值算法在因式分解中的设计与实现

2016-09-04 11:38

摘要:本文基于Kronecker所提供的一元多项式因式分解的构造算法、一元整系数多项式在整数环上因式分解理论,利用牛顿向前差分插值算法代替拉格朗日插值算法,把有理域上一元高次多项式因式分解化为在整数环上的因式分解,得到了整数环上的一元多项式因式分解的构造性算法及其具体实现过程。

论文关键词:Newton插值、不可约多项式、因式构造、算法

0 引言

计算机出现以后,研究多项式因式分解的构造和算法实现问题成为计算机代数的重要课题,对此国内外很多学者做了大量的工作,吴文俊教授在文献[2]中作了系统详细的研究,给出因式分解方法,A.K.Lenstra,H.K.LenstraL.Lovasz三人于1982年首次提出了一元整系数多项式分解算法[3],即著名的L3算法。

本文基于Kronecker因式分解的基本思想[4]:在有理数域内,任何n次多项式都能经有限此算术运算分解为不可约多项式的乘积。设f(x)为整系数多项式且f(x)= g(x)q(x),则适当调整系数后,可使f(x)的因式g(x)q(x)也为整系数多项式。对于整数a,等式f(a)=g(a)q(a)中的g(a)的数值必为f(a)的因数,数学论文由于f(a)的因数是有限个,所以只能得到有限个g(a);设f(x)k次因式g(x)f(x)在某k+1个点x0x1、…、xk处的值分别为f(x0)f(x1)、…、f(xk),再对f(xi)(其中i=0,1,,k)进行因式分解,所得的因数个数为pi(其中i=0,1,,k),f(xi)的因数集中取一个因数,一共有牛顿插值算法在因式分解中的设计与实现-论文网种不同的方法,利用拉格朗日插值公式求出多项式g(x),判定所求多项式g(x)是否为f(x)的因式。

在因式分解中涉及多项式的整除性,本文利用多项式整除性的一些性质,对多项式可能存在的因式进行判断,找出多项式的因式。一般情况下,人工可以进行4次及一下的多项式的分解,而高于4次的多项式很难进行分解,于是设想用计算机来解决这个问题,把高次多项式分解成一些不可约多项式的积,提高解题效率。

1 算法原理分析

1.1 Newton向前差分插值算法

Kronecker提供的因式分解构造性算法中,采用了朗格朗日插值算法。拉格朗日插值算法虽格式整齐和规范,但计算量大、没有承袭性,当需要增加差值节点时,不得不重新计算所有插值基函数,同时内存消耗大[5]。且有时会产生切断误差而不能进行精确因式分解。于是本文用牛顿向前差分差值算法[6]代替拉格朗日算法。

定义:设等距节点xi=x0+ih h是步长,i=012,…

记函数f的值 fi=f(xi) i=012,…

则称一阶向前差分△fi=fi+1-fin阶向前差分△nfi=n-1fi+1-n-1fi

定理1:向前差分与函数的关系为:

Newton插值其中不可约多项式因式构造

现讨论等距节点情形:

x0由定理1有: f[x0x1、…、xk]= kfi/(k!hk)

于是牛顿插值公式简化为

Nn(x)=f0+(x-x0)1f0/(1!h1)+(x-x0)(x-x1)2f0/(2!h2)++

(x-x0)(x-x1) (x-xn-1)nf0/(n!hn)

本算法采用等距节点h=1的情况,于是k次多项式Nk(x)的系数分别为:

算法

论文图片

牛顿插值算法在因式分解中的设计与实现-论文网 Newton插值

不可约多项式

1.2 因式判断

在本文中F(x)表示数域上F上的全体,设f(x)g(x)因式构造F(x),物流管理毕业论文范文如果存在多项式f(x)= g(x)q(x),则称f(x)能被g(x)整除,记为f(x)g(x)。整除有以下几个定理来判断:

定理2[6]:R是整数环,R(x)也是整数环,因而必有商域

算法称为R上的一元有理分式域。

于是有:

(1)g(x) =0,那么根据整除的定义,g(x)只能整除零多项式;

(2)g(x)论文图片0,那么由以上定理,当且仅当g(x)除以f(x)的余式r(x)=0时,g(x)能整除f(x)

1.3 多项式相除算法

f(x)=g(x)q(x)

牛顿插值算法在因式分解中的设计与实现-论文网

Newton插值

不可约多项式

则因式构造 (0算法t论文图片n)

亦,当a0=0ai牛顿插值算法在因式分解中的设计与实现-论文网0时,f(x)必有因式g(x)=x

c0=0时,f(x)可能有因式g(x)=x

c0Newton插值0时,d0=a0/c0,dn-k=an/ck

不可约多项式 (t=1,2,,n-k-1)

2 算法分析及实现

用构造性算法(如图1)找出f(x)可能的因式g(x),若g(x)为整系数多项式且最高项系数不为0,则flag=1;否则flag=0。若flag=1并验证出g(x)f(x)的因式,则输出g(x),facmon=1,f(x)=f(x)/g(x)(即令n=n-k);否则继续构造。若构造的g(x)的次数k>[n/2]facmom=0,f(x)是不可约多项式;若构造的g(x)的次数k>[n/2]facmom=1,则输出f(x)的最后一个因式f(x),否则继续构造。

3结束语

本文利用多项式整除性的一些性质,对多项式可能存在的因式进行判断,找出多项式的因式。一般情况下,人工可以进行低次多项式的分解,而高次多项式很难进行分解,于是设想用计算机来解决这个问题,把高次多项式分解成一些不可约多项式的积,提高解题效率。本文把有理数域上一元高次多项式因式分解化为在整数环上的因式分解,得到了整数环上的一元多项式因式分解的构造性算法及其具体实现过程。

参考文献:

[1] 王绍恒,许明春.判断一类最值问题可解性的计算机算法[J].西南师范大学学报(自然科学版),2000,25-3:L221-224.

[2] 吴文俊.几何定理机器证明的基本原理(初等几何部分)[M].北京科学出版社,1984,会计毕业生毕业论文145-208.

[3] Lenstra A.K,Lenstra H.K,Jr.andLovasz L.Factoring ploymials with raction coefficients,Math.Ann.261(1982).

[4] 赵振威.中学数学教材教法(第二分册)初等代数研究[M].华东师范大学出版社,199083-84.

[5] 陈曦,李志蜀,基于MPI并行环境下拉格朗日插值的求解[J].微计算机信息2009,3-3:168-170.

[6] 关冶.数值计算方法[M].清华大学出版社,1989.

1 因式分解流程图