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

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

多项式的牛顿迭代法是多项式函数的基础算法。考虑方程 F ( P ( x ) ) ≡ 0 m o d    x n F(P(x)) \equiv 0 \mod x^n F(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) y y y 点泰勒展开得到:

F ( x ) = F ( y ) + ( x − y ) F ′ ( y ) + ( x − y ) 2 G ( 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) 是关于 x x x y y y 的形式幂级数。

F ( Q k ) ≡ 0 m o d    x a F(Q_k) \equiv 0 \mod x^a F(Qk)0modxa 我们想找到 F ( Q k + 1 ) ≡ 0 m o d    x 2 a F(Q_{k+1}) \equiv 0 \mod x^{2a} F(Qk+1)0modx2a 满足 Q k + 1 ≡ Q k + x a C m o d    x 2 a Q_{k+1} \equiv Q_k + x^aC \mod x^{2a} Qk+1Qk+xaCmodx2a

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

F ( Q k + 1 ) ≡ F ( Q k ) + ( Q k + 1 − Q k ) F ′ ( Q k ) + ( Q k + 1 − Q k ) 2 G ( x , y ) m o d    x 2 a . 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.

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

0 ≡ F ( Q k + 1 ) ≡ F ( Q k ) + ( Q k + 1 − Q k ) F ′ ( Q k ) m o d    x 2 a 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

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

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

你已经学会如何对多项式取逆和如何计算 F ( Q k ) F(Q_k) F(Qk) 了,那么我们就能在 O ( n log ⁡ 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、付费专栏及课程。

余额充值