多项式——多项式牛顿迭代

多项式——多项式牛顿迭代

多项式的牛顿迭代法是多项式函数的基础算法。考虑方程 F(P(x))≡0mod  xnF(P(x)) \equiv 0 \mod x^nF(P(x))0modxn 其中 F(x)F(x)F(x) 是一个已知的多项式插值函数(其实是可以泰勒展开的任意函数)定义为:

F(x)=∑i=0∞αi(x−β)i F(x) = \sum_{i=0}^{\infty} \alpha_i (x - \beta)^i F(x)=i=0αi(xβ)i

αi\alpha_iαi 称为系数, β\betaβ 称为展开点,都是定值。

P(x)P(x)P(x) 是一个多形式,现在请求出 P(x)P(x)P(x)

F(x)F(x)F(x)yyy 点泰勒展开得到:

F(x)=F(y)+(x−y)F′(y)+(x−y)2G(x,y) F(x) = F(y) +(x - y)F'(y) + (x-y)^2G(x,y) F(x)=F(y)+(xy)F(y)+(xy)2G(x,y)

其中 F′(x)F'(x)F(x)F(x)F(x)F(x) 的导数,定义为:

F′(x)=∑i=0∞(i+1)αi+1(x−β)i F'(x) = \sum_{i=0}^{\infty} (i+1) \alpha_{i+1} (x - \beta)^i F(x)=i=0(i+1)αi+1(xβ)i

G(x,y)G(x,y)G(x,y) 是关于 xxxyyy 的形式幂级数。

F(Qk)≡0mod  xaF(Q_k) \equiv 0 \mod x^aF(Qk)0modxa 我们想找到 F(Qk+1)≡0mod  x2aF(Q_{k+1}) \equiv 0 \mod x^{2a}F(Qk+1)0modx2a 满足 Qk+1≡Qk+xaCmod  x2aQ_{k+1} \equiv Q_k + x^aC \mod x^{2a}Qk+1Qk+xaCmodx2a

带入 x=Qk+1x = Q_{k+1}x=Qk+1y=Qky = Q_ky=Qk 我们得到:

F(Qk+1)≡F(Qk)+(Qk+1−Qk)F′(Qk)+(Qk+1−Qk)2G(x,y)mod  x2a. F(Q_{k+1}) \equiv F(Q_k) + (Q_{k+1} - Q_k) F'(Q_k) + (Q_{k+1} - Q_k)^2 G(x, y) \mod x^{2a}. F(Qk+1)F(Qk)+(Qk+1Qk)F(Qk)+(Qk+1Qk)2G(x,y)modx2a.

因为 Qk+1−Qk≡0mod  xaQ_{k+1} - Q_k \equiv 0 \mod x^aQk+1Qk0modxa 那么 (Qk+1−Qk)2≡0mod  x2a(Q_{k+1} - Q_k)^2 \equiv 0 \mod x^{2a}(Qk+1Qk)20modx2a 。因此:

0≡F(Qk+1)≡F(Qk)+(Qk+1−Qk)F′(Qk)mod  x2a 0 \equiv F(Q_{k+1}) \equiv F(Q_k) + (Q_{k+1} - Q_k) F'(Q_k) \mod{x^{2a}} 0F(Qk+1)F(Qk)+(Qk+1Qk)F(Qk)modx2a

等式的第三部分告诉了我们 QkQ_kQkQk+1Q_{k+1}Qk+1 的关系,即为:

Qk+1≡Qk−F(Qk)F′(Qk)mod  x2a Q_{k+1} \equiv Q_k - \frac{F(Q_k)}{F'(Q_k)} \mod{x^{2a}} Qk+1QkF(Qk)F(Qk)modx2a

你已经学会如何对多项式取逆和如何计算 F(Qk)F(Q_k)F(Qk) 了,那么我们就能在 O(nlog⁡n)O(n \log n)O(nlogn) 的情况下计算出多项式 P(x)P(x)P(x)

上述过程就称为多项式的牛顿迭代法,可用于计算多项式函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值