zoukankan      html  css  js  c++  java
  • [学习笔记] 牛顿迭代

    描述

    已知 (g(x)),求 (f(x)) 满足 (g(f(x)) equiv 0 pmod{x^n})

    方法

    倍增。

    (f_0(x)) 满足 (g(f_0(x)) equiv 0 pmod{x^{lceil frac{n}{2} ceil}})

    (g(x))(f_0(x)) 处泰勒展开,

    [g(x) equiv sum_{i ge 0}frac{g^{(i)}(f_0(x))}{i!}(f(x) - f_0(x))^i equiv 0 pmod{x^n} ]

    由于 (f(x))(f_0(x)) 的前 (lceil frac{n}{2} ceil - 1) 项相同,所以 (forall i ge 2,(f(x) - f_0(x))^i equiv 0 pmod{x^n})

    所以

    [g(x) equiv g(f_0(x)) + g'(f_0(x))(f(x) - f_0(x)) equiv 0 pmod{x^n} ]

    移项可得

    [f(x) = f_0(x) - frac{g(f_0(x))}{g'(f_0(x))} ]

    用途

    (h(x)) 为原多项式,

    求逆

    [g(f(x)) equiv frac{1}{f(x)} - h(x) equiv 0 pmod{x^n} ]

    [egin{aligned} f(x) &equiv f_0(x) - frac{frac{1}{f_0(x)} - h(x)}{-frac{1}{f_0^2(x)}} pmod{x^n} \ &equiv f_0(x) + f_0(x) - f_0^2(x)h(x) pmod{x^n} \ &equiv f_0(x)(2 - f_0(x)h(x)) pmod{x^n} \ end{aligned} ]

    时间复杂度为 (T(n) = T(frac{n}{2}) + O(nlog n) = O(n log n))

    开方

    [g(f(x)) equiv f_0^2(x) - h(x) equiv 0 pmod{x^n} ]

    [egin{aligned} f(x) &equiv f_0(x) - frac{f_0^2(x) - h(x)}{2f_0(x)} pmod{x^n} \ &equiv frac{1}{2}(f_0(x) - frac{h(x)}{f_0(x)}) end{aligned} ]

    时间复杂度为 (O(n log n))

    exp

    前置知识:((ln x)' = frac{1}{x})

    [g(f(x)) equiv ln f(x) - h(x) equiv 0 pmod{x^n} ]

    [egin{aligned} f(x) &equiv f_0(x) - frac{ln f_0(x) - h(x)}{frac{1}{f_0(x)}} pmod{x^n} \ &equiv f_0(x)(1 - ln f_0(x) + h(x)) pmod{x^n} end{aligned} ]

    时间复杂度为 (O(nlog n))

  • 相关阅读:
    JS 函数—函数内部:arguments、this、,caller、new.target
    JS—函数概述
    Number API
    Object-API—02
    03构建之法阅读笔记之一
    4月第二次每周总结(4月15日)
    电梯演讲
    个人作业3—折线图
    个人作业3—china.jsp设置页面
    每周总结(4月8日)
  • 原文地址:https://www.cnblogs.com/BruceW/p/14079514.html
Copyright © 2011-2022 走看看