漫步最优化九——泰勒级数
感受停在我胸口的纤手,\textbf{感受停在我胸口的纤手,}
记住望着我坚定的双眼。\textbf{记住望着我坚定的双眼。}
为了你,我竟然会疯狂掉,\textbf{为了你,我竟然会疯狂掉,}
没有你,即便山崩海啸,也不想逃。\textbf{没有你,即便山崩海啸,也不想逃。}
也许未来很遥远,\textbf{也许未来很遥远,}
但是我愿在未知的等待中为你守候。\textbf{但是我愿在未知的等待中为你守候。}
——畅宝宝的傻逼哥哥\qquad\qquad\quad\textbf{——畅宝宝的傻逼哥哥}
一些非线性规划过程与方法利用了目标函数与等式、不等式约束为线性或二次近似这个策略,即f(x),ai(x),cj(x)f(\textbf{x}),a_i(\textbf{x}),c_j(\textbf{x})为线性或二次近似,这样的近似通过使用泰勒级数就能得到。如果f(x)f(\textbf{x})是两个变量x1,x2x_1,x_2的函数,使得f(x)∈CPf(\textbf{x})\in C^P,其中P→∞P\to\infty,即f(x)f(\textbf{x})有任意阶的连续偏导数,那么函数f(x)f(\textbf{x})在[x1+δ1,x2+δ2][x_1+\delta_1,x_2+\delta_2]上的函数值由泰勒级数可得
\begin{align*} f(x_1+\delta_1,x_2+\delta_2) =&f(x_1,x_2)+\frac{\partial f}{\partial x_1}\delta_1+\frac{\partial f}{\partial x_2}\delta_2\\ &+\frac{1}{2}\left(\frac{\partial^2f}{\partial x_1^2}\delta_1^2+\frac{2\partial^2f}{\partial x_1\partial x_2}\delta_1\delta_2+\frac{\partial^2f}{\partial x_2^2}\delta_2^2\right)\\ &+O(\Vert\boldsymbol{\delta}\Vert^3) \end{align*}
其中
\boldsymbol{\delta}=[\delta_1\ \delta_2]^T
O(∥δ∥3)O(\Vert\boldsymbol{\delta}\Vert^3)是余项,∥δ∥\Vert\boldsymbol{\delta}\Vert是δ\boldsymbol{\delta}的欧几里得范数
\Vert\boldsymbol{\delta}=\sqrt{\boldsymbol{\delta}^T\boldsymbol{\delta}}
符号ϕ(x)=O(x)\phi(x)=O(x)表示当xx趋近零时,ϕ(x)\phi(x)至少与xx趋近零的速度一样快,即存在常数K≥0K\geq 0使得
\left|\frac{\phi(x)}{x}\right|\leq K\quad as\quad x\to 0
其实余项也可以表示成o(∥δ∥2)o(\Vert\boldsymbol{\delta}\Vert^2)其中符号phi(x)=o(x)phi(x)=o(x) 表示当xx接近零时,ϕ(x)\phi(x)接近零的属于比xx要快,即
\left|\frac{\phi(x)}{x}\right|\to 0\quad as\ x\to 0
如果f(x)f(\textbf{x})是nn个变量的函数,那么f(x)f(\textbf{x})在点[x1+δ1,x2+δ2,…][x_1+\delta_1,x_2+\delta_2,\ldots]上的泰勒级数为
\begin{align*} f(x_1+\delta_1,x_2+\delta_2,\ldots) =&f(x_1,x_2,\ldots)+\sum_{i=1}^n\frac{\partial f}{\partial x_i}\delta_i\\ &+\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\delta_i\frac{\partial^2f}{\partial x_i\partial x_j}\delta_j\\ &+o(\Vert\boldsymbol{\delta}\Vert^2) \end{align*}
用矩阵符号表示为:
f(\textbf{x}+\boldsymbol{\delta})=f(\textbf{x})+\textbf{g}(\textbf{x})^T\boldsymbol{\delta}+\frac{1}{2}\boldsymbol{\delta}^T\textbf{H}(\textbf{x})\boldsymbol{\delta}+o(\Vert\boldsymbol{\delta}\Vert^2)
其中g(x)\textbf{g}(\textbf{x})是点x\textbf{x}处的梯度,H(x)\textbf{H(x)} 是海森矩阵。
当∥δ∥→0\Vert\boldsymbol{\delta}\Vert\to 0时,可以忽略二阶或更高阶的项,这时候就得到f(x+δ)f(\textbf{x}+\boldsymbol{\delta})的线性近似
f(\textbf{x}+\boldsymbol{\delta})\approx f(\textbf{x})+\textbf{g}(\textbf{x})^T\boldsymbol{\delta}
同样的,f(x+δ)f(\textbf{x}+\boldsymbol{\delta})的二次近似为
f(\textbf{x}+\boldsymbol{\delta})\approx f(\textbf{x})+\textbf{g}(\textbf{x})^T\boldsymbol{\delta}+\frac{1}{2}\boldsymbol{\delta}^T\textbf{H(x)}\boldsymbol{\delta}
泰勒级数还有另一种形式,包含余项
\begin{align*} f(\textbf{x}+\boldsymbol{\delta}) =&f(\textbf{x})\\ &+\sum_{1\leq k_1+k_2+\cdots+k_n\leq P}\frac{\partial^{k_1+k_2+\cdots+k_n}f(\textbf{x})}{\partial x_1^{k_1}\partial x_2^{k_2}\cdots\partial x_n^{k_n}}\prod_{i=1}^n\frac{\delta_i^{k_i}}{k_i!}\\ &+\sum_{k_1+k_2+\cdots+k_n=P+1}\frac{\partial^{P+1}f(\textbf{x}+\alpha\boldsymbol{\delta})}{\partial x_i^{k_1}\partial x_2^{k_2}\cdots\partial x_n^{k_n}}\prod_{i=1}^n\frac{\delta_i^{k_i}}{k_i!} \end{align*}
其中0≤α≤10\leq\alpha\leq 1且
\sum_{1\leq k_1+k_2+\cdots+k_n\leq P}\frac{\partial^{k_1+k_2+\cdots+k_n}f(\textbf{x})}{\partial x_1^{k_1}\partial x_2^{k_2}\cdots\partial x_n^{k_n}}\prod_{i=1}^n\frac{\delta_i^{k_i}}{k_i!}
所有k1,k2,…,knk_1,k_2,\ldots,k_n可能组合的求和,这个泰勒级数的表示是最一般的,因此可以得到f(x+δ)f(\textbf{x}+\boldsymbol{\delta})的三次和更高次近似,进一步,还可以用来求线性,二次,三次或更高次的精确封闭形式表达式。如果f(x)∈C1f(\textbf{x})\in C^1且P=0P=0,那么我们得到
f(\textbf{x}+\boldsymbol{\delta})=f(\textbf{x})+\textbf{g}(\textbf{x}+\alpha\boldsymbol{\delta})^T\boldsymbol{\delta}
如果f(x)∈C2,P=1f(\textbf{x})\in C^2,P=1,那么
f(\textbf{x}+\boldsymbol{\delta})=f(\textbf{x})+\textbf{g}(\textbf{x})^T\boldsymbol{\delta}+\frac{1}{2}\boldsymbol{\delta}^T\textbf{H}(\textbf{x}+\alpha\boldsymbol{\delta})\boldsymbol{\delta}
其中0≤α≤10\leq\alpha\leq 1,上面那个等式我们通常称为微分中值定理。
通过重组泰勒级数,我们可以得到下面的形式:
\begin{align*} f(\textbf{x}+\boldsymbol{\delta} =&f(\textbf{x})+\textbf{g}(\textbf{x})^T\boldsymbol{\delta}+\frac{1}{2}\boldsymbol{\delta}^T\textbf{H(x)}\boldsymbol{\delta}+\frac{1}{3!}D^3f(\textbf{x})\\ &+\cdots+\frac{1}{(r-1)!}D^{r-1}f(\textbf{x})+\cdots \end{align*}
其中
D^rf(\textbf{x})=\sum_{i_1=1}^n\sum_{i_2=1}^n\cdots\sum_{i_r=1}^n\left\{\delta_{i_1}\delta_{i_2}\cdots\delta_{i_r}\frac{\partial^rf(\textbf{x})}{\partial x_{i_1}\partial x_{i_2}\cdots\partial x_{i_r}}\right\}
漫步最优化九——泰勒级数相关推荐
- 漫步最优化三十九——Fletcher-Reeves法
你的目光像桥梁,\textbf{你的目光像桥梁,} 指引我通往你心路的捷径.\textbf{指引我通往你心路的捷径.} 你的魅力像磁铁,\textbf{你的魅力像磁铁,} 加快我靠向你身边的步伐.\t ...
- 漫步最优化二十九——D.S.C.算法
你是我的小公主,\textbf{你是我的小公主,} 像宠你宠你宠你.\textbf{像宠你宠你宠你.} 你是我的小公主,\textbf{你是我的小公主,} 我的天空是晴是雨是彩虹,\textbf{我的 ...
- 漫步最优化十九——封闭算法
想你的夜晚,\textbf{想你的夜晚,} 我在屋顶做着一个梦.\textbf{我在屋顶做着一个梦.} 我和你拥抱在明亮的月光下,\textbf{我和你拥抱在明亮的月光下,} 动人的旋律环绕在我俩身边 ...
- 漫步最优化四十五——矩阵S的生成
想赖着你每一天,\textbf{想赖着你每一天,} 耽误多一秒都不愿意.\textbf{耽误多一秒都不愿意.} 想把你捧在手心,\textbf{想把你捧在手心,} 给你我最奢侈的温柔.\textbf{ ...
- 漫步最优化四十二——Partan法
漆黑的冷空中有你,\textbf{漆黑的冷空中有你,} 惺忪的眼睛中有你,\textbf{惺忪的眼睛中有你,} 心底的记忆中有你,\textbf{心底的记忆中有你,} 你留在我的脑海中,\textbf ...
- 漫步最优化三十四——高斯-牛顿法
你的温柔像羽毛,\textbf{你的温柔像羽毛,} 秘密躺在我怀抱.\textbf{秘密躺在我怀抱.} 你的微笑像拥抱,\textbf{你的微笑像拥抱,} 只有我能看到.\textbf{只有我能看到. ...
- 漫步最优化三十三——牛顿法
自从有了你,\textbf{自从有了你,} 绝望与无奈远走高飞.\textbf{绝望与无奈远走高飞.} 自从有了你,\textbf{自从有了你,} 我的世界不再天灰灰.\textbf{我的世界不再天灰 ...
- 漫步最优化三十二——最速下降法
爱需要勇气,\textbf{爱需要勇气,} 但是也许是天意,\textbf{但是也许是天意,} 让我爱上你,\textbf{让我爱上你,} 也许轮回里早已注定,\textbf{也许轮回里早已注定,} ...
- 漫步最优化三十一——梯度法
我拿起笔芯,\textbf{我拿起笔芯,} 开始在心里慢慢书写回忆.\textbf{开始在心里慢慢书写回忆.} 记录第一次遇见的你,\textbf{记录第一次遇见的你,} 记录第一次牵手的你,\tex ...
最新文章
- Generic Data Access Layer泛型的数据访问层
- Maven 打包的3中场景
- CodeForces - 1343F Restore the Permutation by Sorted Segments(思维)
- php swoole 项目实战,Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)...
- 我如何构建Kubernetes集群,以便我的同事可以更快地部署应用程序
- IE6下溢出多余文字
- 【Shell】获取文件名和扩展名
- (译)Windows Azure:移动后端开发的主要更新
- Python语言的技术领域
- hcna华为认证网络工程师
- python登录二维码_python实现二维码扫码自动登录淘宝
- bluehost中国和bluehost美国的区别?应该选择哪个?
- 数算(Python)——牛顿迭代法(巴比伦算法)求解平方根
- 金蝶apusic9.0版本安装包
- 【原创】CSS3 制作奥林匹克五环
- No Feign Client for loadBalancing defined.错误
- 基于Springboot开发实现的图书管理系统(附源码)
- 试用多片2K×8的RAM扩展为4K×16的RAM(下面用多片1K×4的RAM扩展为2K×8的RAM代替之, 二者原理相同)(二〇二〇年山东大学数字电路906综合题第1题)(全网第一手资料)
- Docker错误Loaded: bad-setting (Reason: Unit docker.service has a bad unit file setting.) docker.servic
- 软件提示无法正常启动0xc000007b的解决方法
热门文章
- java里的多线程同步机制
- cocos2d-x学习之自动内存管理
- 插件原理[转自CSDN]
- AjaxFileUploader上传插件 兼容性好
- 在Nginx/Tengine服务器上安装SSL证书
- Debian8 Linux上安装SSH服务器并配置sshd_config文件启用root ssh登录
- TCP/IP五层模型(五层因特网协议栈)||| OSI参考模型|||数据的封装与解封装
- JavaScript性能优化【上】-- 内存管理、垃圾回收
- 【Java】数组的使用
- 【Python】如何在python中执行另一个py文件