多项式牛顿迭代(应用:求逆,开根,对数exp)
多項式牛頓迭代
給定多項式g(x)g(x)g(x),求f(x)f(x)f(x),滿足g(f(x))≡0(modxn)g(f(x)) \equiv 0 \pmod {x ^ n}g(f(x))≡0(modxn)。
泰勒展開
對于現有得f(x)f(x)f(x),構造一個多項式g(x)g(x)g(x),使得f(n)(x)=g(n)(x)f^{(n)}(x) = g ^{(n)} (x)f(n)(x)=g(n)(x),也就是兩者得nnn階導數是相等的。
假設g(x)=a0+a1x+a2x2+?+an?1xn?1+anxng(x) = a_0 + a_1 x + a_2 x ^ 2 + \dots + a_{n - 1} x ^{n -1} + a_n x ^ng(x)=a0?+a1?x+a2?x2+?+an?1?xn?1+an?xn
考慮通過(0,f(0))(0, f(0))(0,f(0))來構造,顯然有g(0)=a0=f(0)g(0) = a_0 = f(0)g(0)=a0?=f(0),對任意階倒數相同有g(n)=n!an=f(n)(0)g ^{(n)} = n ! a_n = f ^{(n)}(0)g(n)=n!an?=f(n)(0),則an=f(n)(0)n!a_n = \frac{f^{(n)}(0)}{n!}an?=n!f(n)(0)?
所以構造出g(x)=f(0)+f(1)(0)1!x+f(2)(0)2!x2+?+f(n?1)(0)(n?1)!xn?1+f(n)(0)n!xn…g(x) = f(0) + \frac{f^{(1)}(0)}{1!} x + \frac{f^{(2)}(0)}{2!} x ^ 2 + \dots + \frac{f^{(n - 1)}(0)}{(n - 1) !} x^{n - 1} + \frac{f^{(n)}(0)}{n !} x ^ n \dotsg(x)=f(0)+1!f(1)(0)?x+2!f(2)(0)?x2+?+(n?1)!f(n?1)(0)?xn?1+n!f(n)(0)?xn…
對于任意點(x0,f(x0))(x_0, f(x_0))(x0?,f(x0?)),可得g(x)=f(0)+f(1)(0)1!(x?x0)+f(2)(0)2!(x?x0)2+?+f(n?1)(0)(n?1)!(x?x0)n?1+f(n)(0)n!(x?x0)n…g(x) = f(0) + \frac{f^{(1)}(0)}{1!} (x - x_0) + \frac{f^{(2)}(0)}{2!} (x - x_0) ^ 2 + \dots + \frac{f^{(n - 1)}(0)}{(n - 1) !} (x - x_0)^{n - 1} + \frac{f^{(n)}(0)}{n !} (x - x_0) ^ n \dotsg(x)=f(0)+1!f(1)(0)?(x?x0?)+2!f(2)(0)?(x?x0?)2+?+(n?1)!f(n?1)(0)?(x?x0?)n?1+n!f(n)(0)?(x?x0?)n…
牛頓迭代
迭代求函數零點
對于f(x)f(x)f(x),任意選取一個點(x0,f(x0))(x_0, f(x_0))(x0?,f(x0?))作為當前我們預估的零點,取他的泰勒展開前兩項g(x)=f(0)+f′(x)(x?x0)g(x) = f(0) + f'(x)(x - x_0)g(x)=f(0)+f′(x)(x?x0?),
解出方程g(x)=0g(x) = 0g(x)=0,得到x1x_1x1?,然后重復上述操作,最后xnx_nxn?會趨近于我們所要的正解。
考慮如何應用到多項式上
邊界條件n=1n = 1n=1時,[x0]g(f(x))=0[x ^0]g(f(x)) = 0[x0]g(f(x))=0,的解單獨求出。
假設我們已經求得膜x?n2?x ^{\lceil\frac{n}{2} \rceil}x?2n??下的解f0(x)f_0(x)f0?(x),要求膜xnx ^nxn下的解f(x)f(x)f(x),得到該點的泰勒展開:
∑i=0∞g(i)(f0(x))i!(f(x)?f0(x))nf(x)?f0(x)前面的項已經被截了,所以最低次冪是大于?n2?的有(f(x)?f0(x))i≡0(modxn),i>=2有g(f0(x))+g′(f0(x))(f(x)?f0(x))≡0(modxn)f(x)≡f0(x)?g(f0(x))g′(f0(x))(modxn)\sum_{i = 0} ^{\infty} \frac{g ^{(i)}(f_0(x))}{i !}(f(x) - f_0(x)) ^n\\ f(x) - f_0(x)前面的項已經被截了,所以最低次冪是大于\lceil \frac{n}{2} \rceil的\\ 有(f(x) - f_0 (x)) ^ i \equiv 0 \pmod {x ^ n}, i >= 2\\ 有g(f_0(x)) + g'(f_0(x))(f(x) - f_0(x)) \equiv 0 \pmod {x ^ n}\\ f(x) \equiv f_0(x) - \frac{g(f_0(x))}{g'(f_0(x))} \pmod {x ^ n}\\ i=0∑∞?i!g(i)(f0?(x))?(f(x)?f0?(x))nf(x)?f0?(x)前面的項已經被截了,所以最低次冪是大于?2n??的有(f(x)?f0?(x))i≡0(modxn),i>=2有g(f0?(x))+g′(f0?(x))(f(x)?f0?(x))≡0(modxn)f(x)≡f0?(x)?g′(f0?(x))g(f0?(x))?(modxn)
應用
多項式求逆
對于給定的h(x),有g(f(x))=1f(x)?h(x)≡0(modxn)f(x)≡f0(x)?1f0(x)?h(x)?1f02(x)(modxn)f(x)≡2f0(x)?h(x)f02(x)(modxn)f(x)≡f0(x)(2?h(x)f0(x))(modxn)對于給定的h(x),\\ 有g(f(x)) = \frac{1}{f(x)} - h(x) \equiv 0 \pmod {x ^ n}\\ f(x) \equiv f_0(x) - \frac{\frac{1}{f_0(x)} - h(x)}{-\frac{1}{f_0 ^ 2(x)}} \pmod{x ^n}\\ f(x) \equiv 2f_0(x) - h(x) f_0 ^ 2(x) \pmod {x ^ n}\\ f(x) \equiv f_0(x)(2 - h(x)f_0(x)) \pmod {x ^ n}\\ 對于給定的h(x),有g(f(x))=f(x)1??h(x)≡0(modxn)f(x)≡f0?(x)??f02?(x)1?f0?(x)1??h(x)?(modxn)f(x)≡2f0?(x)?h(x)f02?(x)(modxn)f(x)≡f0?(x)(2?h(x)f0?(x))(modxn)
多項式開根
對于給定的h(x)有g(f(x))=f2(x)?h(x)≡0(modxn)f(x)≡f0(x)?f02(x)?h(x)2f0(x)(mod()xn)f(x)≡f02(x)+h(x)2f0(x)(modxn)f(x)≡2?1f0(x)+2?1h(x)f0?1(x)(modxn)對于給定的h(x)\\ 有g(f(x)) = f ^ 2(x) - h(x) \equiv 0 \pmod {x ^ n}\\ f(x) \equiv f_0(x) - \frac{f_0 ^2(x) - h(x)}{2f_0(x)} \pmod (x ^n)\\ f(x) \equiv \frac{f_0 ^ 2(x) + h(x)}{2f_0(x)} \pmod {x ^ n}\\ f(x) \equiv 2 ^{-1} f_0(x) + 2 ^{-1} h(x) f_0 ^{-1}(x) \pmod {x ^n}\\ 對于給定的h(x)有g(f(x))=f2(x)?h(x)≡0(modxn)f(x)≡f0?(x)?2f0?(x)f02?(x)?h(x)?(mod()xn)f(x)≡2f0?(x)f02?(x)+h(x)?(modxn)f(x)≡2?1f0?(x)+2?1h(x)f0?1?(x)(modxn)
多項式exp?\expexp
對于給定的h(x)有g(f(x))=ln?f(x)?h(x)≡0(modxn)f(x)≡f0(x)?ln?f0(x)?h(x)1f0(x)(modxn)f(x)≡f0(x)(1?ln?f0(x)+h(x))(modxn)對于給定的h(x)\\ 有g(f(x)) = \ln f(x) - h(x) \equiv 0 \pmod {x ^ n}\\ f(x) \equiv f_0(x) - \frac{\ln f_0(x) - h(x)}{\frac{1}{f_0(x)}} \pmod {x ^ n}\\ f(x) \equiv f_0(x)(1 - \ln f_0(x) + h(x)) \pmod {x ^ n}\\ 對于給定的h(x)有g(f(x))=lnf(x)?h(x)≡0(modxn)f(x)≡f0?(x)?f0?(x)1?lnf0?(x)?h(x)?(modxn)f(x)≡f0?(x)(1?lnf0?(x)+h(x))(modxn)
總結
以上是生活随笔為你收集整理的多项式牛顿迭代(应用:求逆,开根,对数exp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炉石传说进不去怎么办
- 下一篇: 生成函数简单入门