求解形式幂级数的一阶微分方程

为了方便本文的叙述,作出如下可能不严谨的定义:
\(1\)、如无特殊说明,\(f\)表示一个多项式。
\(2\)、如无特殊说明,\(F\)表示一个以多项式为参数的函数。

这篇文章主要是想求解这个东西:

\[\frac{d}{dx}f=F(f) (\bmod x^n)\]

一般情况下\(f\)可以放到等式右边然后就可以用牛顿迭代来求零点了...然而这个微分非常讨厌,怎么办呢,我们还是来考虑倍增。

先来考虑泰勒展开式,假设上一次迭代的结果是\(\widehat f\),那么:

\[\frac{d}{dx}f=\sum_{i=0}^{\infty}\frac{F^{(i)}(\widehat f)}{i!}(f-\widehat f)^i\]

显然\(i\geq 2\)的项都是没有用的,于是改写为:

\[\frac{d}{dx}f=F(\widehat f)+F'(\widehat f)(f-\widehat f)\]

拆项、移项:

\[\frac{d}{dx}f-F'(\widehat f)f=F(\widehat f)-F'(\widehat f)\widehat f\]

下面就是一波神仙操作了,我们设一个\(r\),其值为:

\[r=e^{-\int F'(\widehat f)\ dx}\]

考虑其微分,利用复合函数求导法则得:

\[\frac{d}{dx}r=e^{-\int F'(\widehat f)\ dx}\cdot(-F'(\widehat f))=-F'(\widehat f)r\]

考虑对之前得式子左右同乘\(r\)

\[\frac{d}{dx}f\cdot r-F'(\widehat f)f\cdot r=(F(\widehat f)-F'(\widehat f)\widehat f)\cdot r\]

于是可以发现等式左边的第二项可以转化,变为\(f\cdot \frac{d}{dx}r\),于是等式左边就可以再利用求导法则转化:

\[\frac{d}{dx}f\cdot r+f\cdot \frac{d}{dx}r=\frac{d}{dx}(f\cdot r)=(F(\widehat f)-F'(\widehat f)\widehat f)\cdot r\]

于是对两边进行积分:

\[f\cdot r=\int (F(\widehat f)-F'(\widehat f)\widehat f)\cdot r \ dx\]

显然再同除以\(r\)

\[f=\frac{\int (F(\widehat f)-F'(\widehat f)\widehat f)\cdot r \ dx}{r}\]

于是就可以倍增了...这操作真的是好强好强。

\(\rm upd\):分治\(\rm FFT\)好啊...常数可以吊打上面的做法...

转载于:https://www.cnblogs.com/Mr-Spade/p/9924127.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值