多项式学习笔记
-
多项式求逆
已知 \(F(x)\), 求 \(G(x)\), 使得 \(F(x) \times G(x) = 1\)。
做法 : 倍增。
\(G[0]\) 即是 \(F[0]\) 的逆元。
若已知 \(F(x) \times G_0(x) \equiv 1 (\mod x^{\frac n 2 })\)
要求 \(G(x)\), 使得 \(G(x) \times F(x) \equiv 1 (\mod x^n)\)
易得 \(G(x) - G_0(x) \equiv 0 (\mod x ^ {\frac n 2})\), 两边平方得到 :
\(G^2(x) - 2G(x)G_0(x) + G_0^2(x) \equiv (\mod x^n)\)
两边同乘 \(F(x)\) :
\(G(x) - 2G_0(x)F(x) + G_0^2F(x) \equiv 0 (\mod x^n)\)
\(G(x) = 2G_0(x)F(x) - G_0^2(x)F(x)\)
-
多项式牛顿迭代
牛顿迭代 :用于快速求一个函数 \(f(x)\) 的零点。
若已求得一个近似值 \(x_0\) 和 \(f(x_0)\), 在坐标系上作一条直线经过 \((x_0, f(x_0))\), 且斜率为 \(f'(x_0)\) 。
容易写出直线 \(y = f'(x_0)(x - x_0) + f(x_0)\), 令 \(y = 0\), 得到 \(x = x_0 - \dfrac {f(x_0)}{f'(x_0)}\)。
放到多项式上也是同样的, 若要求 \(G(x)\) 使得 \(F(G(x)) = 0\),利用上面的公式可得 :
\(G(x) = G_0(x) - \dfrac{F(G_0(x))}{F'(G_0(x))}\)。
一个有趣的事实是, 迭代一次精度可以翻倍, 即从 \(x^{\frac n 2}\) 变为 $ x ^ n$, 我也不会证。
-
多项式对数函数
求 \(B(x) = \ln A(x)\)。 ( \(\ln(x) = \log_ex\), \(e = \sum\limits_{i=0}^{\infty}\dfrac 1 {i!}\))
众所周知 \(\ln'(x) =\dfrac 1 n\), 对多项式也成立。
两边求导 : \(B'(x) = \dfrac{A'(x)}{A(x)}\), 再对 \(B'(x)\) 积分即可。
求导 : \(F'(x) = \sum\limits_{i=0} F[i]ix^{i-1}\)。
积分 : \(F'(x) = \sum\limits_{i=0} F[i] x^{i+1}/i\)
-
多项式指数函数
求 \(B(x) = e^{A(x)}\)
两边取对数 : \(\ln B(x) = A(x)\)
使用牛顿迭代,设 \(F(G(x)) = \ln G(x) - A(x)\), 目标即是 \(F(G(x)) = 0\)。
\(G(x) = G_0(x) - \dfrac{F(G_0(x))}{F'(G_0(x))}\)
\(=G_0(x) - \dfrac{\ln G_0(x) - A(x))}{\dfrac{1}{G_0(x)}}\)
\(=G_0(x)(1 - \ln G_0(x) +A(x))\)。
-
多项式开根
求 \(B^2(x) = A(x)\)
设 \(F(G(x)) = G^2(x) - A(x)\)。
\(F(G(x)) = G_0(x) - \dfrac{G_0^2(x) - A(x)}{2G_0(x)}\)
\(= \dfrac{G_0^2(x) + A(x)}{2G_0^2(x)}\)
-
多项式带余除法
给定 \(F(x)\) 和 \(G(x)\), 求出 \(Q(x)\) 和 \(R(x)\), 使得 \(F(x) = Q(x) G(x)+ R(x)\)。
定义 \(F_R(x) = x^nF(\frac 1 x)\), 易知 \(F_R\) 的系数等于 \(F\) 的系数翻转。
\(F(\frac 1 x) = Q(\frac 1 x)G(\frac 1 x) + R(\frac 1 x)\)
\(x^n F(\frac 1 x) = x^{n - m} Q(\frac 1 x) \times x^m G(\frac 1 x) + x ^ {n - m + 1} \times x^{m - 1}R(\frac 1 x)\)
\(F_R(x) = Q_R(x) G_R(x) + x^{n - m + 1}R_R(x)\), 两边同时 \(\mod x^{n - m + 1}\) :
\(F_R(x) \equiv Q_R(x) G_R(x) (\mod x^{n - m + 1})\)
\(Q_R(x) \equiv G_R(x) \times F_R^{-1}(x)\), 求出 \(Q_R\) 后求出 \(Q\), 再求出 \(R\)。
-