多项式牛顿迭代
描述
给定多项式
,已知多项式
满足:
且存在数值
使
满足以下条件:
;
。
求出模
意义下的
。
Newton's Method
考虑倍增。
首先当
时,
的解需要单独求出,假设中的
即为一个解。
假设现在已经得到了模
意义下的解
,要求模
意义下的解
。
将
对
在
处进行泰勒展开,有:
因为
的最低非零项次数最低为
,故有:
则:
或者
例题
设给定函数为
,有:
应用 Newton's Method 可得:
时间复杂度
设给定函数为
,有:
应用 Newton's Method 可得:
时间复杂度
设给定函数为
,有:
应用 Newton's Method 可得:
时间复杂度
手算演示
为了方便理解,这里举几个例子演示一下算法流程。
复数多项式模多项式的平方根
假设
是一个不被
整除(有常数项)的复数多项式,求它对模
的平方根。
我们有方程:
Taylor 展开
得到下式。注意这里是对
的展开,所以导数都是对
的偏导数,
在这里是当成常数算的。
用倍增计算。假设倍增中的中间结果是
,或者数学严谨地说
是满足
的一个复数多项式,且为了唯一性它同时满足以下两个条件:
把
和
代入上面的式子就有:
显然
必然是
的倍数。于是得到
如果
存在,那么
不被
整除(有常数项),所以必然有模
的逆元。因此数列
存在当且仅当
存在。不被
整除的复数多项式
模
的平方根是一定存在的,因为
模掉
就是个普通非零复数,一定有两个平方根。所以可以对所有有常数项的
用这个算法。
选
举例计算如下:
可以验证两个都是正确的模平方根多项式列。
整数模素数幂的平方根
牛顿迭代算法还可以迁移到整数模素数的幂的情况。
假设
是一个不被 3 整除的「方便的」整数。(「方便」指「必然有解」,具体条件后文再言)假设要算
在模
意义下的平方根
。有方程:
Taylor 展开
得到:
用倍增计算。假设倍增中得到的中间结果是
,或者严谨地说
是满足
的一个整数,且为了唯一性它同时满足以下两个条件:
把
和
代入上面的式子就有:
显然
必然是
的倍数。于是得到
如果
存在,那么
不被
整除,所以必然有模
的逆元。因此数列
存在当且仅当
存在。不被 3 整除的整数
模
的平方根要么不存在,要么有两个。所以
有模
平方根就是整个算法能跑的唯一条件。
这里选
实际计算示例。
可以验证一下两个都是正确的模平方根数列。
代数证明
这一节对前文进行引申,用抽象代数的语言证明只要
满足初始解条件,牛顿法对所有的
都能给出解,并且可以得到全部的解。
有解的证明
引理 1
设 整环
有多项式或 形式幂级数
和
使得
(亦即
是
在模
意义下的根)且
在模
意义下是可逆的。这里
是
的 形式导数。那么
。
证明
对所有
,
所以
因为
,且
可逆,所以取
即可,这里
是模
意义下的逆元。因为
在模
意义下可逆,所以它在模
意义下也必定存在逆元:设有
使
和
,那么
,故可以取
。
对于域
上的多项式环
,设有
和
使
,那么应用引理 1 就可得到
而倍增的初始条件只要有
使得
和
。后一个条件保证了
有非零常数项,同时因为
,故而对所有的
,
总是模
意义下可逆的,也就满足了下一次迭代的条件。
得到全部解的证明
引理 2
若
为 UFD,
定义同引理 1。则引理 1 给出的
是模
意义下唯一满足以下两条件的
的值:
亦即
证明
令
和
,引理 1 保证
满足两个条件,且
。
设
是满足上述条件的值,则有
和
。
于是有
和
。
牛顿法可以保证得到模
的全部解。假设
,那么令
,然后取
并用牛顿法,根据引理 2 可得
,所以一定有
。
上面的论证也说明了,在
永远可逆时,
的解的个数等于
的解的个数。这个结论并非平凡。请看下面的例子。
牛顿法无效时解的个数随次数而变多的例子
模
意义下
的平方根只有
,但是模
意义下
的平方根有
。
本页面最近更新:2025/1/7 23:10:19,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:shuzhouliu, 97littleleaf11, Enter-tainer, fps5283, H-J-Granger, Ir1d, Marcythm, Tiphereth-A, TrisolarisHD, zjkmxy
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用