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. WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容

    原文:WPF实现选项卡效果(3)--自定义动态添加的AvalonDock选项卡内容 简介 在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任 ...

  2. Emgu-WPF学习使用-Rectangle识别

    原文:Emgu-WPF学习使用-Rectangle识别 环境:Win8 64位 Vs2015 Emgu 版本:emgucv-windesktop 3.2.0.2682 示例图上部流程:原图->灰 ...

  3. C# 写CSV文件字符串前面0不显示的解决办法

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  4. WPF Binding妙处-既无Path也无Source

    <Window x:Class="XamlTest.Window12"        xmlns="http://schemas.microsoft.com/win ...

  5. js table鼠标点击时变色

    <head>    <title></title>    <script type="text/javascript">      ...

  6. WPF 简单打印

    <Window x:Class="_096基本打印.MainWindow"        xmlns="http://schemas.microsoft.com/w ...

  7. swagger-editor

    前言 上一篇文章我们有提到Swagger做接口的定义是采用yaml语言的,当然,yaml是个啥,大家自行百度.阿福在此不做赘述了.但是,今天我们要来讲的是yaml支持比较好的Swagger-Edito ...

  8. GIS基础软件及操作(九)

    原文 GIS基础软件及操作(九) 练习九.水文分析 水文分析:根据DEM提取河流网络,计算流水累积量.流向.根据指定的流域面积大小自动划分流域 水文分分析工具 (1)通过Arctoolbox:水文分析 ...

  9. C#整数类型

    C#支持9种整数类型,sbyte,byte,short,ushort,int,uint,long,ulong和char. 类型 含义                                  ...

  10. Windows完成端口与猪肉佬

    首先应该说明的是,我也是第一次使用完成端口.虽然以前偶尔在网上看到完成端口的文章和代码,但真正自己动手写还是第一次,不过我这个人有个特点就是大胆,例如没有写那个界面编程系列前,其实我甚至不知道原来一个 ...