2.1 基本优化问题

$\operatorname{minimize}\text{    }f(x)\text{       for   }x\in {{R}^{n}}$

解决无约束优化问题的一般步骤为:

  • Step1:选择一个初始出点${{\mathbf{x}}_{0}}$(这里的${{\mathbf{x}}_{0}}$是向量),设置一个收敛误差$\varepsilon $(解的精度)和一个迭代次数$k=0$;
  • Step2:找到从点${{\mathbf{x}}_{k}}$使函数$f(x)$下降最快的方向${{d}_{k}}$;
  • Step3:确定一个步长${{\alpha }_{k}}>0$,使$f({{\mathbf{x}}_{k}}+{{\alpha }_{k}}{{\mathbf{d}}_{k}})$减小,且${{\mathbf{x}}_{k+1}}={{\mathbf{x}}_{k}}+{{\alpha }_{k}}{{\mathbf{d}}_{k}}$;
  • Step4:if走一步的距离$\left\| {{\alpha }_{k}}{{\mathbf{d}}_{k}} \right\|<\varepsilon $,则停止并且输出解${{\mathbf{x}}_{k+1}}$;else $k:=k+1$并返回Step2,继续迭代。

注意:Step2和Step3是优化问题的关键;Step3是一个元优化的问题,通常被称为线性搜索;其中$\mathbf{x}$是一个有n个元素的列向量;假设$f(x)$二阶连续可微(比较光滑);

我将以一个,求解非线性方程组的例子,介绍多元无约束优化的各个步骤。

2.2 解一个非线性方程:

ok,整个无约束多元优化问题,以解一个非线性方程开始,将介绍(度下降、牛顿法、拟牛顿法)。

$\left\{ \begin{aligned} & x_{1}^{2}+{{x}_{2}}=11 \\& {{x}_{1}}+x_{2}^{2}=7 \\\end{aligned} \right.$

(a)用Matlab的roots()函数去解多项式方程:

将${{x}_{2}}=11-x_{1}^{2}$代入${{x}_{1}}+x_{2}^{2}=7$中,有$x_{1}^{4}-22x_{1}^{2}+{{x}_{1}}+114=0$

解得:$x1={{[3.5884\text{ 3}\text{.0000 -3}\text{.7793 -2}\text{.8051}]}^{T}};x2={{[-1.8481\text{ 2}\text{.0000 -3}\text{.2832 -3}\text{.1313}]}^{T}}$

(b) 用优化的方法去解

将解方程组的问题转化为优化问题:

\[\left\{ \begin{aligned}& {{f}_{1}}(\mathbf{x})=x_{1}^{2}+{{x}_{2}}-11=0 \\& {{f}_{2}}(\mathbf{x})={{x}_{1}}+x_{2}^{2}-7=0 \\\end{aligned} \right.\Rightarrow \underset{\mathbf{x}}{\mathop{\operatorname{mini}}}\,f(\mathbf{x})=\underset{\mathbf{x}}{\mathop{\operatorname{mini}}}\,\left[ f_{1}^{2}(\mathbf{x})+f_{2}^{2}(\mathbf{x}) \right]\]

要求得方程的解,按照优化理论的理解来说,就是要找到能使得${{f}_{1}}(\mathbf{x})$和${{f}_{2}}(\mathbf{x})$尽量趋近于0的$({{x}_{1}},{{x}_{2}})$。(至于这里为什么是二次方的和最小,而不是4次方、6次方...,这是一个非线性的方程组我还没法解释,如果是线性的到能解释——误差服从高斯分布)。ok,上面的问题可写为:

$\operatorname{minimize}\text{    }f(\mathbf{x})\text{       for   }\mathbf{x}\in {{R}^{2}}$

现在按照解一般优化问题的基本步骤走:

Step1:选择一个初始出点${{\mathbf{x}}_{0}}$(这里的${{\mathbf{x}}_{0}}$是向量),设置一个收敛误差$\varepsilon $(解的精度)和一个迭代次数$k=0$;

Step2:找到从点${{\mathbf{x}}_{k}}$使函数$f(x)$下降最快的方向${{d}_{k}}$;

由泰勒公式可知,如果一个函数足够平滑,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值。泰勒公式还给出了这个多项式和实际的函数值之间的偏差。

对于一个一元函数来说,泰勒公式可写为下式

$\begin{aligned}& f(x)=f({{x}_{0}})+{f}'({{x}_{0}})(x-{{x}_{0}})+\frac{{f}''({{x}_{0}})}{2!}{{(x-{{x}_{0}})}^{2}}+ \\& \text{          }...+\frac{{{f}^{(n)}}({{x}_{0}})}{n!}{{(x-{{x}_{0}})}^{n}}+\frac{{{f}^{(n+1)}}({{x}_{0}})}{(n+1)!}{{({{x}_{0}}+\theta (x-{{x}_{0}}))}^{n+1}} \\\end{aligned}$

其中$0<\theta <1$,${{x}_{0}}+\theta (x-{{x}_{0}})=\xi $其实$\xi $就表示${{x}_{0}}$与$x$之间的任意一点。现实中描述一个问题的时候,一般都有多个输入变量;在工程中一般认为展开到二阶导数就能精确的表示点${{\mathbf{x}}_{k}}$周围任意一点${{\mathbf{x}}_{k}}+\mathbf{\delta }$的函数值$f({{\mathbf{x}}_{k}}+\mathbf{\delta })$,则有:

\[\begin{aligned} & f({{\mathbf{x}}_{k}}+\mathbf{\delta })=f({{\mathbf{x}}_{k}})+{f}'({{\mathbf{x}}_{k}})\mathbf{\delta }+\frac{1}{2}{{\mathbf{\delta }}^{T}}{f}''({{\mathbf{x}}_{k}})\mathbf{\delta }+O\left( {{\left\| \mathbf{\delta } \right\|}^{3}} \right) \\& \text{               =}f({{\mathbf{x}}_{k}})+{{\nabla }^{T}}f({{\mathbf{x}}_{k}})\cdot \mathbf{\delta }+\frac{1}{2}{{\mathbf{\delta }}^{T}}\cdot {{\nabla }^{2}}f({{\mathbf{x}}_{k}})\cdot \mathbf{\delta }+O\left( {{\left\| \mathbf{\delta } \right\|}^{3}} \right) \\\end{aligned}\]

从这里开始分各类算法,像最速下降法、牛顿法、拟牛顿法,这些方法的目的就是在找方向${{d}_{k}}$。这些内容将在,02(b)、02(c)、02(e)中介绍。

02(a)多元无约束优化问题的更多相关文章

  1. 02(c)多元无约束优化问题-牛顿法

    此部分内容接<02(a)多元无约束优化问题>! 第二类:牛顿法(Newton method) \[f({{\mathbf{x}}_{k}}+\mathbf{\delta })\text{ ...

  2. 02(b)多元无约束优化问题-最速下降法

    此部分内容接02(a)多元无约束优化问题的内容! 第一类:最速下降法(Steepest descent method) \[f({{\mathbf{x}}_{k}}+\mathbf{\delta }) ...

  3. 02(d)多元无约束优化问题-拟牛顿法

    此部分内容接<02(a)多元无约束优化问题-牛顿法>!!! 第三类:拟牛顿法(Quasi-Newton methods) 拟牛顿法的下降方向写为: ${{\mathbf{d}}_{k}}= ...

  4. 02(e)多元无约束优化问题- 梯度的两种求解方法以及有约束转化为无约束问题

    2.1 求解梯度的两种方法 以$f(x,y)={{x}^{2}}+{{y}^{3}}$为例,很容易得到: $\nabla f=\left[ \begin{aligned}& \frac{\pa ...

  5. 无约束优化方法(梯度法-牛顿法-BFGS- L-BFGS)

    本文讲解的是无约束优化中几个常见的基于梯度的方法,主要有梯度下降与牛顿方法.BFGS 与 L-BFGS 算法. 梯度下降法是基于目标函数梯度的,算法的收敛速度是线性的,并且当问题是病态时或者问题规模较 ...

  6. MATLAB进行无约束优化

    首先先给出三个例子引入fminbnd和fminuc函数求解无约束优化,对这些函数有个初步的了解 求f=2exp(-x)sin(x)在(0,8)上的最大.最小值. 例2 边长3m的正方形铁板,四角减去相 ...

  7. 01(b)无约束优化(准备知识)

    1.解方程转化为优化问题 $n\left\{ \begin{aligned}& {{P}_{1}}(x)=0 \\ & {{P}_{2}}(x)=0 \\ & \text{   ...

  8. 无约束优化算法——牛顿法与拟牛顿法(DFP,BFGS,LBFGS)

    简介:最近在看逻辑回归算法,在算法构建模型的过程中需要对参数进行求解,采用的方法有梯度下降法和无约束项优化算法.之前对无约束项优化算法并不是很了解,于是在学习逻辑回归之前,先对无约束项优化算法中经典的 ...

  9. 065 01 Android 零基础入门 01 Java基础语法 08 Java方法 02 带参无返回值方法

    065 01 Android 零基础入门 01 Java基础语法 08 Java方法 03 带参无返回值方法 本文知识点:带参无返回值方法 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...

随机推荐

  1. nuget包发布

    创建项目 需要选择.net Standard的项目   0 设置包信息   1 打包   2 在bin目录下可以看到生成的.nupkg文件   3 发布包 登录https://www.nuget.or ...

  2. 协程在Web服务器中的应用(配的图还不错)

    协程(纤程,微线程)这个概念早就有之,各家互联网公司也都有研究,但在国内各大论坛和大会热起来,还是今年的事. 最近参与讨论开放平台建设和架构设计过程中,有同事提到了使用协程代替线程,能够很大幅度的提高 ...

  3. vmware linux无法正常上网

    不知道自己怎么搞的整的vmware里面的fedora 12 不能正常上网,但是在宿主机上ping XXX,是正常的.当service network restart 的时候提示MAC有问题.网上百度了 ...

  4. 数据绑定(九)Binding的数据校验

    原文:数据绑定(九)Binding的数据校验 Binding用ValidationRules属性来校验数据的有效性,ValidationRules属性类型是Collection<Validati ...

  5. Java发展历程

    Java 的发展要追溯到 1991 年,Patrick Naughton(帕特里克·诺顿)和 James Gosling(詹姆斯·高斯林)带领 Sun 公司的工程师打算为有线电视转换盒之类的消费产品设 ...

  6. Win8Metro(C#)数字图像处理--2.22二值图像膨胀

    原文:Win8Metro(C#)数字图像处理--2.22二值图像膨胀  [函数名称] 二值图像膨胀函数DilationProcess(WriteableBitmap src) [算法说明]  膨胀 ...

  7. Python标准库(3.x): itertools库扫盲

    itertools functions accumulate() compress() groupby() starmap() chain() count() islice() takewhile() ...

  8. Caliburn.Micro 自定义View和ViewModel的匹配规则

    使用TypeMappingConfiguration类 //Override the default subnamespaces var config = new TypeMappingConfigu ...

  9. Delphi xe5 StyleBook的用法(待续)

    首先要在FORM里拖进来一个StyleBook1,然后在Form里设置属性,记住一定要在单击form,在OBject Inspector里设置StyleBook  [StyleBook1]. 下一个属 ...

  10. QPixmap的缓冲区

    我想qt 中QPixmap这个类大家都很熟悉,它可以很简单的在标签上贴图:例如: QPixmap p; p.load("1.png"): label->setPixmap(p ...