zoukankan      html  css  js  c++  java
  • 多项式牛顿迭代法

    本文仅考虑域(Field)$mathbb{F}$上的一元$N$次多项式

    $$ f(x) = sum_{n=0}^N a_n x^n, $$

    其中$x$是形式参数,$a_n in mathbb{F}$。我们把多项式$f(x)$简记作$f$。记

    $$ mathbb{F}[x] = left{\, f(x) = sum_{n=0}^N a_n x^n mid a_0, a_1, dots, a_N in mathbb{F}, N geq 0 \, ight} $$

    表示域$mathbb{F}$上的所有一元多项式。

    给定多项式$F in left(mathbb{F}[x] ight)[x]$,求多项式$f in mathbb{F}[x]$,使得$F(f) equiv 0 pmod {x^N}$。

    设$f_0 equiv f pmod {x^n}$,其中$n leq N$。考虑$F(f)$在$f=f_0$处的Taylor展开,

    $$ F(f) = sum_{k=0}^infty (k!)^{-1} F^{(k)}(f_0) (f-f_0)^k. $$

    当$k geq 2$时,我们有$(f-f_0)^k equiv 0 pmod {x^{2n}}$。若$2n leq N$,则上式在模$x^{2n}$意义下化为

    $$ F(f_0)+F'(f_0) (f-f_0) equiv 0 pmod {x^{2n}}. $$

    解得

    $$ f equiv f_0 - left[F'(f_0) ight]^{-1} F(f_0) pmod {x^{2n}}, $$

    其中$f^{-1}$表示$f$在模$x^{2n}$意义下的逆元,即$f^{-1} f equiv 1 pmod {x^{2n}}$。

    如此迭代即可求得多项式$f$,称之为牛顿迭代法。

    多项式求逆

    已知多项式$g in mathbb{F}[x]$,求$g$在模$x^N$意义下的逆$f equiv g^{-1} pmod {x^N}$,即$fg equiv 1 pmod {x^N}$。令

    $$ F(f) = f^{-1} - g, $$

    则$ F'(f) = -f^{-2} $。设$f equiv f_0 pmod {x^n}$,应用牛顿迭代法可得递推式

    $$ f equiv f_0 - (-f_0^{-2})^{-1} (f_0^{-1}-g) equiv f_0(2-f_0g) pmod {x^{2n}}. $$

    多项式开根

    已知多项式$g in mathbb{F}[x]$,求$g$在模$x^N$意义下的二次方根$f equiv g^{frac 1 2} pmod {x^N}$,即$f^2 equiv g pmod {x^N}$。令

    $$ F(f) = f^2 - g, $$

    则$ F'(f) = 2f $。设$f equiv f_0 pmod {x^n}$,应用牛顿迭代法可得递推式

    $$ f equiv f_0 - (2f_0)^{-1} (f_0^2-g) equiv 2^{-1}(f_0+f_0^{-1}g) pmod {x^{2n}}. $$

    多项式的对数和指数

    设$f in mathbb{F}[x]$。若$[x^0]f = 0$,则定义$f$的指数为

    $$ exp f = sum_{n=0}^infty (n!)^{-1} f^n. $$

    若$[x^0]f = 1$,则定义$f$的对数为

    $$ ln f = sum_{n=1}^infty (-1)^{n+1}n^{-1}(f-1)^n. $$

    多项式的对数

    设$f in mathbb{F}[x]$且$[x^0]f = 1$,则求$ln f$的方法为

    $$ ln f = int mathrm{d} ln f = int f^{-1}f' mathrm{d} x. $$

    多项式的指数

    已知多项式$g in mathbb{F}[x]$,求$g$在模$x^N$意义下的指数$f equiv exp g pmod {x^N}$。

    我们利用$ln exp g = g$。令

    $$ F(f) = ln f - g, $$

    则$ F'(f) = f^{-1} $。设$f equiv f_0 pmod {x^n}$,应用牛顿迭代法可得递推式

    $$ f equiv f_0 - (f_0^{-1})^{-1} (ln f_0 - g) equiv f_0(1-ln f_0+g) pmod {x^{2n}}. $$

    意外收获

    若$[x^0]g=1$,则$g$的$k$次幂$g^k$可由

    $$ g^k = exp left( k ln g ight) $$

    导出。而除此之外的一般情形都可设法化为如上情形。

  • 相关阅读:
    欧拉函数
    uva10870 矩阵
    poj3233 矩阵等比数列求和 二分
    hdu4990 矩阵
    hdu4549 矩阵快速幂 + 欧拉降幂
    补矩阵的题目
    CodeForces 450B 矩阵
    hoj2662 状态压缩dp
    poj3254 状态压缩dp
    zoj2770 差分约束系统
  • 原文地址:https://www.cnblogs.com/TinyWong/p/12952384.html
Copyright © 2011-2022 走看看