常用多项式算法

牛顿迭代公式

多项式的牛顿迭代公式用来解决以下问题:

给出 G(x)G(x)G(x) 求解 f(x)f(x)f(x) 满足方程 G(f(x))≡0(modxn)G(f(x)) \equiv 0 \pmod {x^n}G(f(x))0(modxn)

先给出公式:

G(A0)≡0(modxm),G(A)≡0(modx2m)G(A_0) \equiv 0 \pmod {x^m},G(A) \equiv 0 \pmod {x^{2m}}G(A0)0(modxm),G(A)0(modx2m) ,则:

A(x)≡A0(x)−G(A0)G′(A0)(modx2m)A(x) \equiv A_0(x)-\frac{G(A_0)} {G'(A_0)} \pmod {x^{2m}}A(x)A0(x)G(A0)G(A0)(modx2m)

推导过程如下:

显然, G(A)−G(A0)≡0(modxm)G(A) - G(A_0) \equiv 0 \pmod {x^{m}}G(A)G(A0)0(modxm) ,而 A(x)−A0(x)A(x)-A_0(x)A(x)A0(x) 必为 G(A)−G(A0)G(A) - G(A_0)G(A)G(A0) 的因式之一,因此我们取 A(x)−A0(x)≡0(modxm)A(x)-A_0(x) \equiv 0 \pmod {x^m}A(x)A0(x)0(modxm) 的一解即可。

G(A)G(A)G(A)A0(x)A_0(x)A0(x) 处泰勒展开:

G(A)=G(A0)+∑i=1∞(A(x)−A0(x))iG(i)(x)i!G(A)=G(A_0)+\sum_{i=1}^{\infty}\frac{(A(x)-A_0(x))^i G^{(i)}(x)} {i!}G(A)=G(A0)+i=1i!(A(x)A0(x))iG(i)(x)

由于对 i≥2i\ge2i2(A(x)−A0(x))i≡0(modx2m)(A(x)-A_0(x))^i\equiv 0 \pmod{x^{2m}}(A(x)A0(x))i0(modx2m)

因此就有:

G(A)≡G(A0)+(A(x)−A0(x))G′(A0)≡0(modx2m)G(A)\equiv G(A_0)+{(A(x)-A_0(x)) G'(A_0)} \equiv 0\pmod {x^{2m}}G(A)G(A0)+(A(x)A0(x))G(A0)0(modx2m)

A(x)≡A0(x)−G(A0)G′(A0)(modx2m)A(x) \equiv A_0(x)-\frac{G(A_0)} {G'(A_0)} \pmod {x^{2m}}A(x)A0(x)G(A0)G(A0)(modx2m)

注意 G′(A0)G'(A_0)G(A0)GGGA0A_0A0 的导数。

还有一点就是,由于 A(x)−A0(x)≡0(modxm)A(x)-A_0(x) \equiv 0 \pmod {x^m}A(x)A0(x)0(modxm) ,因此只要知道 1G′(A0) mod xm\frac{1}{G'(A_0)} \bmod x^mG(A0)1modxm 即可。

多项式常用函数的求法

元的线性变换

就是给定 F(x)F(x)F(x)F(px+q)F(px+q)F(px+q)

先给出 F(x+q)F(x+q)F(x+q) 的求法:


F(x)=∑i=0maixiF(x)=\sum_{i=0}^{m}a_ix^i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值