浅谈微分求导+泰勒展开+生成函数
前言
作为求解数论多项式题的必备知识,这几样东西每一样都不会讲得太深入,但是互相关联。
以下部分讲解摘自巨佬DY的"生成函数.pdf"。
(由于笔者对富文本编辑器情有独钟,下面的推导公式可能都是以无法复制的图片展示的)
微分求导
微分属于微积分的一部分,本来应该和积分一起讲,但是积分对微分依赖较大,而微分相对独立些,脱离微积分的情景也能讲懂。
求导和微分其实是一回事,微分的过程就是求导的过程。
把一个函数求导,通俗地讲,就是求出原函数每个点的切线斜率对应的函数,比如对于位移-时间图像,我们知道速度越大位移增长越快,某时刻切线斜率就等于该时刻的瞬时速度,所以位移-时间关系式求导过后就是速度-时间关系式。
我们称函数求导过后的函数为的导函数,记为或。特别地,我们把函数求导n次过后的函数叫做的n阶导,可记为 (注意不要写成,这是的n次方),所以求导两次可以记为、,也可以记为。
有些函数可以求导,有些则不可导(如奇怪的折线)。
关于求导这里有一些很实用的需要背的东西(公式),建议熟记:
学习导数后你会发现一些有趣的东西,比如正余弦互化,比如导后不变,比如和的导函数相同,etc。
对微分求导更详细严谨的讲解可以看看《漫步微积分》(csdn上应该有人写了翻译博客)。
泰勒展开
泰勒展开,我的理解是,把一个非多项式的函数(比如指数对数,三角函数)写成一个多项式形式。
怎么让两者相等的?这里用到了导函数,标准公式为:
若在n阶内可导:
称为在点x0处(带有皮亚诺型余项)的泰勒多项式,的各项系数称为泰勒系数。
这里的x0是随便取的一个在定义域以内的值,R(x)是这个n次展开式的误差,叫做拉格朗日余项(一种皮亚诺型余项,了解即可,用得不多),如果x0和n取得得当,这个误差一般特别小。
n越大,展开式越精确,所以n=∞时可以把拉格朗日余项消去:
(前提是可以无限次求导)
特别地,当x0=0时,有麦克劳林公式:
或
至此,我们在多项式函数和非多项式函数之间建立了联系。
有一些常用的简单的例子,建议和导函数一起记:
- ,这个很好解释,求导后还是,带入麦克劳林公式即可。把x替换为-x还可以得到:。
- ,因为,所以sin(x)的1阶、2阶、3阶、4阶导分别为、、、,然后循环,所以带入麦克劳林公式,偶数项泰勒系数都为0。
- ,和sin(x)同理,cos(x)的1~4阶导为、、、,带入麦克劳林公式,系数和sin(x)的错位了一下,奇数项系数为0。
- ,因为,然后再把右边的式子不断求导,可得的n阶导为,所以带入麦克劳林公式得到上式。为什么不写呢?因为泰勒多项式自取的x0要满足在每一阶导的函数中都很好求,中就是1,但是如果x0取1的话多项式中会带,不方便看。如果把式子中的x替换为-x,就可以把所有系数都变为-1,得到:
- ,根据上面的过程可知的n阶导为,带入麦克劳林公式后可以把阶乘消掉。
- ,这个很显然;其实就是a的i次下降幂,当i>a时,显然这个式子为0,自动帮我们去除掉了求导a+1次过后导函数为0的情况。所以原式还可以长这样:。
对泰勒展开更详细严谨的讲解可以看看别人的博客泰勒公式的展开细节解析(直接贴链接应该不存在什么版权问题吧,侵删)。
生成函数
生成函数也叫母函数,是很多组合排列题中用到的大法宝,只可惜我刚学,还完全不会用它解题。
普通生成函数
对于一个无穷序列,定义其普通生成函数为形式幂级数:。
为什么叫形式幂级数呢?它和普通幂级数有区别,加“形式”二字意思是它只是个形式上的关于x的多项式,在所有有关的推导中默认式子有意义,也就是不用管x的取值。
了解定义后,先看一些后面要用到的常用例子(建议熟记):
- 序列的普通生成函数:。这个很巧妙,因为根据定义得到的母函数为,正好是的泰勒展开。
- 序列的普通生成函数:。母函数为,这就是一个无穷项的等比数列求和,当时,有求和公式,因为母函数是形式幂级数,所以不管x的取值,直接等过去。
- 序列的普通生成函数:。母函数为套等比数列求和公式。
- 序列的普通生成函数:。母函数为。由此推广,两个1中间夹任意个数个0的序列的普通生成函数都可以用等比数列求和公式做。
- 序列的普通生成函数:。母函数为。
- 序列的普通生成函数:。这个也很巧妙,母函数为,发现正好是的导函数,由于常数项求导会消去,所以也是的导函数,,把求导后为。
应用
普通生成函数常用来解决无标号的组合计数问题。
例如在集合A中选i个数方案数为,集合B中选i个数方案数为,在A和B中共选i个数方案数为,显然满足,看起来正好是多项式乘法的卷积形式,因此序列的普通生成函数正好等于。
#1
有一道经典例题:
有四种无限多的水果,要求第一种恰好拿出偶数个,第二种恰好拿出 5 的倍数个,第三种最多拿 4 个,第四种最多拿 1 个,求恰好拿出 n 个 水果的方案数。
显然可以直接看出答案,但是我们学以致用,用4个生成函数乘起来:,而正好是序列的普通生成函数,所以答案为n+1。
#2
求 Fibonacci 数列 (n ≥ 2)的普通生成函数:
使用特征根法,即可得到 Fibonacci 数列的通项公式。
指数生成函数
对于一个无穷序列,定义其指数生成函数为形式幂级数:。
应用
相较于普通生成函数,指数生成函数的实用性更高。普通生成函数通常用来解决无标号计数问题,指数生成函数通常用来解决带标号的计数问题,也就是排列计数。
同样举一个简单的例子,例如在集合A中选i个数的排列数为,集合B中选i个数的排列数为,在A和B中共选i个数的排列数为,显然满足,,因此序列的指数生成函数正好等于。
一些例子:
- n 个元素的排列数的指数生成函数:。
- n 个元素的环排列数(n ≥ 1)的指数生成函数:,你会发现,这不是巧合。你可以从排列置换的角度去理解(摘自永神OneInDark的博客):
- n 个元素的错排数(满足的排列数)的指数生成函数:考虑错排数的容斥式,所以有,前面一坨等于而后面一坨就是排列数的指数生成函数,所以。
还有很多例子,我就不展开了,最重要的是做题积累经验。
干货
#1
#2
- ,
- ,,
#3
- 序列的普通生成函数:
- 序列的普通生成函数:
- 序列的普通生成函数:
- 序列的普通生成函数:
- 序列的普通生成函数:
- 序列的普通生成函数:
- Fibonacci 数列 (n ≥ 2)的普通生成函数:
#4
- n 个元素的排列数的指数生成函数:
- n 个元素的环排列数的指数生成函数:,
- n 个元素的错排数的指数生成函数:
浅谈微分求导+泰勒展开+生成函数相关推荐
- 【组合数学】生成函数 ( 换元性质 | 求导性质 | 积分性质 )
文章目录 一.生成函数换元性质 二.生成函数求导性质 三.生成函数积分性质 参考博客 : [组合数学]生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | ...
- 动手学深度学习——矩阵求导之矩阵的迹和微分
目录 一.矩阵的迹 1. 迹的定义 2. 迹的性质 二.微分与全微分 1. (全)微分的表达式 2. (全)微分的法则 三. 矩阵的微分 1. 矩阵微分的实质 2. 矩阵微分的意义 3. 矩阵微分的法 ...
- 矢量求导的微分法则: 链式法则
矢量求导的微分法则: 链式法则 介绍 核心原理 矢量求导 矩阵求导 链式法则 介绍 这篇博文推导了矢量情形下, 标量函数对矢量进行求导的微分法则,从定义出发推导了链式法则的形式. 核心原理 核心原理: ...
- 浅谈生成函数+卷积+FFT
在写FFT的时候,经常会遇到和生成函数的结合 一开始不是能明白,结果突然有一天顿悟了 下面就xue微谈一下生成函数,卷积和FFT的关系吧 生成函数 我们经常用生成函数解决以下问题: 设hnhnh_n为 ...
- 自动求导-Automatic differentiation (自动微分
在数学和计算机代数中,自动微分,也称为算法微分.计算微分.自动微分或简单的自动微分,是一组计算计算机程序指定函数导数的技术.Wikipedia 目录 前言 一.自动求导两种类别 二.计算图(无环的图) ...
- 矩阵论(八):矩阵微分与矩阵求导
矩阵论专栏:专栏(文章按照顺序排序) 做机器学习的几乎避免不了矩阵求导,尤其是神经网络方面的,反向传播算法说白了就是在做矩阵求导,拿到代价函数对模型中每个参数矩阵的导数,才能找到一个下降方向,进而更新 ...
- 矩阵论思维导图_矩阵求导与矩阵微分
矩阵求导与矩阵微分 符号定义 使用大写的粗体字母表示矩阵 使用小写的粗体字母表示向量 ,这里默认为列向量 使用小写的正体字母表示标量 需要明白的是,矩阵求导的意义在哪来,我们回想一下函数求 ...
- 255.0.0.0子网掩码相应的cidr前缀表示法是?_【洛谷日报#246】浅谈表达式的求值(Vol.2 进阶)...
Warning 在观看本博客之前,请保证自己理解了表达式的三种表达方式. 本文旨在让大家更深层次的了解表达式,基础的知识就是上方的链接中所写的.所以,在了解后缀表达式的运算原理之后,我将不会讲述类似的 ...
- 【WC2019】数树【子集反演】【结论】【树形dp】【生成函数】【函数求导】【多项式全家桶】
题意:有两棵基于同一点集的树,点集大小为 nnn ,两棵树中有 opopop 棵未确定,可以取所有 nn−2n^{n-2}nn−2 种可能.给每个点染上 [1,y][1,y][1,y] 中的一个颜色, ...
最新文章
- 《使女的故事》大火,AI是背后最大推手?
- python goto 用法
- eclipse下编译hadoop源代码(转)
- 支持字母数字下划线和中文的正则
- 使用基本工具类和预编译进行对数据库的增删改查
- mysql 检查点_my05_mysql检查点简述
- static函数的申明
- FusionCharts 中文乱码
- QT5.12界面再win10下总是莫名卡死
- 资源---2020考研---英语网站---资料3(考研英语,英语学习。宣言:自从用了这个英语网站,七大姑八大姨开始担心他家孩子比不过我了~~~~~~~~~FT中文网)
- ibatis结果集resultClass的几种类型
- C++中的decltype
- 关于win10输入法导致电脑直接卡机无法动弹问题
- 论文笔记-基于代码属性图和Bi-GRU的软件脆弱性检测方法
- (一)SDRAM——SDRAM入门介绍
- C语言获取MTK平台系统资源信息(CPU/GPU/fps/温度等),保存为表格形式输出
- 利用python做微信聊天记录词云分析——记录美好回忆
- 你自己写春联吗?你会贴春联吗?还是毛笔墨水早就不见了?
- 内网渗透之MSF框架模块详细作用介绍
- 即时通登陆显示服务器失败,即时通中网页出现应用程序中的服务器错误是怎么回事...
热门文章
- apk解压后查看 AndroidManifest.xml 文件内容,解决乱码问题
- 3.24 | Crypto Tech Night第十二期,Web3——属于Gen Z的社交网络时代
- 常识-java发送邮件函数+开启qq邮箱授权码
- 2019年9月19日好货十元内精选包邮
- 远端服务器无响应 请联系网络供应商腾达,移动宽带连接腾达路由器显示 远端服务器无响应。请联系您的网络运营...
- Java递归求全排列详解
- php fpm 重启命令,php-fpm怎么重新启动
- 抖音短链接v.douyin.com生成方法
- 方波的产生——运算放大器LM324产生方波
- 直播app代码公布:视频直播源码转盘功能的实现