多项式求导

函数\(f(x)\)的导函数\(f^{'}(x)\)有如下性质:

\((f(x)\pm g(x))^{'}=f^{'}(x)\pm g^{'}(x)\)

\((f(x)g(x))^{'}=f^{'}(x)g(x)+f(x)g^{'}(x)\)

而且对于单项式\(f(x)=x^n\),其导数\(f^{'}(x)=nx^{n-1}\),所以其\(k(k\leq n)\)阶导数\(f^{(k)}(x)=\frac{n!}{(n-k)!}x^{n-k}\)

相应的,对于多项式\(f(x)=\sum_{i=0}^na_ix^i\),其导数\(f(x)=\sum_{i=0}^{n-1}a_{i+1}(i+1)x^i\),其\(k(k\leq n)\)阶导数\(f^{(k)}=\sum_{i=0}^{n-k}a_{i+k}\frac {(i+k)!}{i!}x^i\)

\(T(n)=O(n)\)

多项式积分

积分是求导的逆运算

若\(f(x)=\sum_{i=0}^{n-1}a_ix_i\)

即\(\int f^{'}(x)\cdot dx=\sum_{i=1}^{n}\frac {a_{i-1}}{i}x^i\)

\(T(n)=O(n)\)

注意同一多项式求导需要逆序

多项式翻转

NOIP考点,但有个式子可以留意:\(f^{R}(x)=x^nf(\frac 1x)\)

多项式求逆

单个元素的逆元应该是是会求的,比如说一个数\(t\)的逆元在膜质数意义下为\(t^{p-2}\)

但现在要求求一个多项式的逆元,联想到在模数为\(x\)时可以快速求得其逆元为\(a(0)^{-1}\),可以考虑从这里开始递推

对于题目可设
\(a*b\equiv 1\pmod {x^{2p}}\\a*c\equiv 1\pmod {x^p}\)

即已知\(a,c\)求\(b\)

\(a*b\equiv 1\pmod {x^p}\\a*c\equiv 1\pmod {x^p}\)

\(\Rightarrow b-c\equiv 0\pmod {x^p}\)

\(\Rightarrow b^2-2bc+c^2\equiv 0 \pmod {x^{2p}}\)

同乘\(a\)

\(\Leftrightarrow ab^2-2abc+ac^2\equiv 0 \pmod {x^{2p}}\)

考虑到\(ab\equiv 1\pmod {x^{2p}}\)

\(\Leftrightarrow b-2c+ac^2\equiv 0 \pmod {x^{2p}}\)
\(\Leftrightarrow b\equiv 2c-ac^2 \pmod {x^{2p}}\)

\(T(n)=O(n\log_2 n)\)

牛顿迭代法

可以用来比较高效地求解多项式函数\(f(x)=\sum_{i=0}^na_ix^i\)零点的近似解,大致过程是,选取\(x_0\)作为零点的近似值(当然这个近似值很可能差距很大,但经过若干次牛顿迭代后将会接近零点),然后求过点\((x_o,f(x_0))\)关于\(f(x)\)的切线\(l\),然后得到直线\(l\)的零点\(x_1\)作为新的近似值,如此反复,得到的\(x_i\)会收敛

求解使得\(F(f(x))=0\pmod {x^n}\)的多项式\(f(x)\)

可以用类似多项式求逆的方法,从\(\bmod x^1\)的情况下开始推导至\(\bmod x^n\)的情况,\(\bmod x^1\)的情况可以直接求得,设当前\(F(f_0(x))\equiv 0\pmod {x^{\lceil \frac k2\rceil}}\),现在要求解\(F(f(x))\equiv 0\pmod {x^k}\),在\(f_0(x)\)处展开\(F(f(x))\):

\[F(f(x))=F(f_0(x))+\sum_{i=1}^{+\infty} F^{(i)}(f_0(x))(f(x)-f_0(x))^i\]

由于\(f(x)\)与\(f_0(x)\)中前\(\lceil \frac k2 \rceil\)项是相同的,所以多项式\((f(x)-f_0(x))^t\)当\(t\geq 2\)时在\(\bmod x^k\)情况下为\(0\),所以

\[F(f(x))=F(f_0(x))+F^{'}(f_0(x))(f(x)-f_0(x))\]

由于\(F(f(x))\equiv 0\pmod {x^k}\),所以可推得
\[f(x)=f_0(x)-\frac{F(f_0(x))}{F^{'}(f_0(x))}\]

这个式子貌似很有用

多项式开根

已知\(g(x)\),求解\(f(x)^2\equiv g(x)\pmod {x^n}\)

\(f(x)^2-g(x)\equiv 0\pmod {x^n}\)

则有\(F(f(x))\equiv f_0(x)^2-g(x)\pmod {x^n}\\F^{'}(f(x))\equiv 2f_0(x)\pmod {x^n}\)

由上述牛顿迭代得到的式子可知

\(f(x)\equiv f_0(x)-\frac{F(f_0(x))}{F^{'}(f_0(x))}\pmod {x^n}\)

\(f(x)\equiv f_0(x)-\frac {f_0(x)^2-g(x)}{2f_0(x)}\pmod {x^n}\)

\(f(x)\equiv \frac {f_0(x)^2+g(x)}{2f_0(x)}\pmod {x^n}\)

\(T(n)=O(n\log_2n)\)

另外常数项如果非1则需要求二次剩余,然而我并不会

多项式求ln

已知\(f(x)\),求解\(\ln(f(x))\)

\((\ln f(x))^{'}=\frac {d \ln f(x)}{d~f(x)}\cdot \frac{d~f(x)}{dx}=(\ln f(x))^{'}\cdot f^{'}(x)=\frac{f^{'}(x)}{f(x)}\)

所以

\(\ln f(x)=\large \int \small(\ln f(x))^{'}=\large \int \small \frac {f^{'}(x)}{f(x)}\)

\(T(n)=O(n\log_2n)\)

多项式求exp

已知\(g(x)\),求解\(f(x)=e^{g(x)}\)

令\(F(f(x))=\ln f(x)-g(x)\equiv 0\pmod {x^n}\)

则有\(F^{'}(f(x))\equiv \frac 1{f(x)}\)

由上述牛顿迭代得到的式子可知

\(f(x)\equiv f_0(x)-\frac{F(f_0(x))}{F^{'}(f_0(x))}\pmod {x^n}\)

\(f(x)\equiv f_0(x)-\frac {\ln f_0(x)-g(x)}{\frac 1{f_0(x)}}\pmod {x^n}\)

\(f(x)\equiv f_0(x)(1-\ln f_0(x)+g(x))\pmod {x^n}\)

\(T(n)=O(n\log_2n)\)

多项式求k次方

暴力\(O(n\log_2n\log_2k)\)

但数学就是那么神奇,转个弯可以加速

\(f(x)^k=(e^{\ln f(x)})^k=e^{k\cdot \ln f(x)}\)

\(T(n)=O(n\log_2n)\)

多项式除法&取模

已知\(n\)次多项式\(A(x)\)和\(m\)次多项式\(B(x)\),求解\(n-m\)次多项式\(f(x)\)与\(k(k<m)\)次多项式\(g(x)\),使得\(A(x)=f(x)B(x)+g(x)\)

消除\(g(x)\)的影响,将\(f(x)\)翻转

\(x^nA(\frac 1x)=x^nf(\frac 1x)B(\frac 1x)+x^ng(\frac 1x)\)

\(\Leftrightarrow x^nA(\frac 1x)=x^{n-m}f(\frac 1x)x^mB(\frac 1x)+x^{n-m+1}x^{m-1}g(\frac 1x)\)

\(\Leftrightarrow A^R(x)=f^R(x)B^R(x)+x^{n-m+1}g^R(x)\)

这个式子在模\(x^{n-m+1}\)的情况下,关于\(g^R(x)\)的项恒为零,同时\(deg~f^R(x)<n-m+1\)不受影响,就可以得到\(f^R(x)\)的真实值\(f^R(x)=\frac {A^R(x)}{B^R(x)}\bmod {x^{n-m+1}}\),对\(f^R(x)\)翻转可得\(f(x)\),同时计算出\(g(x)=A(x)-f(x)B(x)\)

转载于:https://www.cnblogs.com/penth/p/9470258.html

笔记-多项式相关操作相关推荐

  1. 多项式相关操作学习笔记

    多项式相关操作学习笔记 标签: 多项式 说在前边 记录一下相关的多项式操作,顺便存个模板.(多点求值之后的部分,有点写不动了...留坑留坑 多项式 定义 给定一个环\(R\)(\(R\)通常是交换环, ...

  2. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要)

    JqGrid相关操作备忘 方法列表 特别推荐:怎样获取某一方某一列的值: [html] view plaincopy var rowdata=jQuery("#list").jqG ...

  3. jQuery学习笔记--JqGrid相关操作 方法列表 备忘 重点讲解(超重要) from:jpr1990

    JqGrid相关操作备忘 方法列表 1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(js ...

  4. jQuery学习笔记--JqGrid相关操作 方法列表(上)

    1.获得当前列表行数:$("#gridid").getGridParam("reccount"); 2.获取选中行数据(json):$("#gridi ...

  5. 数据结构源码笔记(C语言):二叉平衡树的相关操作算法

    //二叉平衡树的相关运算 #include<stdio.h> #include<malloc.h> #include<string.h>typedef char I ...

  6. 【学习笔记】多项式相关算法

    [学习笔记]多项式相关算法 手动博客搬家: 本文发表于20181125 13:19:28, 原地址https://blog.csdn.net/suncongbo/article/details/844 ...

  7. Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合

    笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...

  8. Spring中RedisTemplate方法中,redis相关操作笔记。[redis生成指定长度自增批次号,删除、设置过期时间等]

    Spring中RedisTemplate方法中,redis相关操作笔记. redis获取自增批次号 // opsForValue()生成long UUID = redisTemplate.opsFor ...

  9. [笔记] 阿里云服务器的相关操作

    文章目录 前言 ECS 服务器数据转移 磁盘扩容 磁盘扩容 Ubuntu 无法启动 更换系统盘 快照及镜像 卸载.挂载数据盘 标题:[笔记] 阿里云服务器的相关操作 前言 最近一直在用阿里云服务器,感 ...

最新文章

  1. java arraycollection_Java集合(三)--Collection、Collections和Arrays
  2. optee系统服务/service的实现方式
  3. windows mysql 自动备份的几种方法
  4. hdu 3577(线段树区间更新)
  5. 机器学习的理论知识点总结
  6. 就业阶段-java语言进价_day04
  7. 【NAACL2021】初探无监督的多跳问答对
  8. 手机摄像头的组成结构和工作原理
  9. 导出DMP文件实现数据库备份、数据迁移流程
  10. java实现斜水印铺满整张图
  11. cmd 新增dns_cmd修改DNS,以及DNS大全
  12. [1191]电脑耳机孔插上耳机没反应
  13. Kubernetes | 《Kubernetes in Action中文版》第8章错误
  14. JRE、JDK、JVM、Jit
  15. 讲道理 | 计算正交投影算子
  16. 从零开始用 Python 打造自己的区块链
  17. 记一次阿里云ECS被挂挖矿代码的处理历程
  18. 必出沾福气卡的福字大全-马云分享
  19. Androdi平台camera的相关知识总结
  20. “数字孪生城市”的概念,你知道多少?

热门文章

  1. Bzoj 1901: Zju2112 Dynamic Rankings 主席树,可持久,树状数组,离散化
  2. 数据库中的DbUtils
  3. linux tar压缩解压命令的详细解释
  4. 触控游戏的设计—Windows Phone 7游戏开发
  5. vs 生成get set_TVM代码学习 -- 代码生成流程(一)
  6. php框架大全图解_PHP框架汇总 - 鱼煎的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. python迭代器好处_python迭代器
  8. JavaScript ES6新特性(二):模块化
  9. asm冗余 oracle_oracle 11.2.0.1 rac 修改asm磁盘组的冗余模式(redundancy mode)为normal
  10. 用matlab做元胞自动机预测,元胞自动机(Cellular Automata)与城市规划及其MATLAB实现——莆田市城市发展预测...