牛顿迭代+泰勒展开+群论选讲
我就想写一个题,发现我要补三个知识点。。。
牛顿迭代
用于求解方程
示例
求解平方根,求解x2=5,考虑这个怎么求,那么把这个东西看成一个函数f(x)=x2−5
那么就是找f(x)当f(x)=0时x的取值,这个函数是一个抛物线,就是找他和x的焦点
先找到2,发现不是很准确,那么在x=2的位置对f(x)的图像做切线,和x轴产生交点
我们可以得到x=2,y=4,斜率f′(x)=2x,f′(2)=4,得到交点x=2.25
然后再次迭代,带入,做切线,找交点,计算log次得到近似解
那么考虑一般情况,就大概构造函数,找到他在y=0的近似解就好了
而且可以求解多项式...强悍如斯
牛顿迭代求解定义域为多项式的函数零点
上文说的牛顿迭代的过程是对于函数不断做切线快速求出一个函数的近似解
我们发现一些多项式可以由自己表示自己
大概长F(x)=G(x)F(x)2+A(x)
这样的式子也可以移项转化成一个关于多项式的函数,求这个函数等于0,时候的解是多少
就是求得多项式过程了
过程大致一样,找切点,迭代求解
那么怎么找f(F(x))的零点
零点可能是个无穷次多项式,我们只需要前n项
定义f(F(x))是一个定义域是多项式的函数
f(F(x))=F(x)2−G(x)=0
有了这个东西,就需要求解
首先F(x)是未知项,G(x)是常数项
------------
泰勒展开
公式
f(x)=∑i=0f(i)(x0)i!(x−x0)i
这个就是能用导数求得原函数值
考虑倍增求解
假设求出了G(x)满足f(G(x))=0 mod xn2
大概就是找的一个解,带入原函数,求导,做切线,继续迭代
带入f(F)在G位置的泰勒展开,求导
f(F)=∑i=0f(i)(G)i!(F−G)i
考虑对原式子泰勒展开,
多项式求逆告诉我们(F−G)2=0(mod xn)
那么f(F)=f(G)+f′(G)(F−G)=0
F=G−f(G)f′(G)
首先显然的是,G已知,那么G就是在mod xn2的解,那么
------
LOJ6538烷基计数
考虑答案多项式A(x),第n项系数就是个数为n的生成树的方案数
那么不考虑算重复的计数是A(x)=1+x×A(x)3
就是说儿子的所有方案相乘再右移一位
但是这样会出现空间同构的情况,那么考虑用群论找出本质相同的情况
所有的置换一共有6=3!种
由Burnside引理可知,不动点数量等于1|S|∑|S|i=1(当前置换的不动点数量)
那么这个系数就是对应的置换有几个,那么就显然了
那么最后的式子就是
A(x)=1+x×A(x)3+3A(x2)A(x)+2A(x3)3!
那么对于这个式子,怎么求解
假设我们求出G(x)=F(x)(mod xn2)
那么我们可以知道F(x2),F(x3)
为什么,因为这个选两个的话方案是一样的,只需要乘一次,那么现在选2×x的方案数实际上是选x个的方案数
既然这样,这个式子已经知道mod xn2
那么可以知道F(x2),F(x3),直接查系数就好了
设F(x2)=A,F(x3)=B
我们考虑牛顿迭代解
f(F)=F−x×F3+3×A×F+2×B6−1=0
对于F(x)求导
f′(F)=1−x6(3F2+3A)
f(F)=∑i=1f(i)(G)i!(F−G)i
F=G−f(G)f′(G)
F=G−G−x6(G3+3A∗G+2B)−11=x6(3G2+3A)
F=x6(2B−2G2)+11−x6(3G2+3A)
或许时间的差距无法弥补,那就尽自己最大努力就好啦,我希望省选完之后的我是无悔的。
或许再给我一次机会,我还会选OI,因为热爱,尽管可能不尽如人意,就是这样,赢要赢的漂漂亮亮,输要输的开开心心
OI,我仍怀着赤诚的心,我会努力到最后一刻的!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现