2.1 求解梯度的两种方法

以$f(x,y)={{x}^{2}}+{{y}^{3}}$为例,很容易得到:

$\nabla f=\left[ \begin{aligned}& \frac{\partial f}{\partial x} \\& \frac{\partial f}{\partial y} \\\end{aligned} \right]=\left[ \begin{aligned}& 2x \\& 3{{y}^{2}} \\\end{aligned} \right]$

这样就很容易求得某一点的梯度。

但是如果梯度的表达式很难写出来,或者根本就写不出来的时候,尤其定义去求梯度可是可以的:

$\nabla f=\left[ \begin{aligned}& \frac{\partial f}{\partial x} \\& \frac{\partial f}{\partial y} \\\end{aligned} \right]=\left[ \begin{aligned}& \frac{f(x+\Delta x,y)-f(x,y)}{\Delta x} \\& \frac{f(x,y+\Delta y)-f(x,y)}{\Delta y} \\\end{aligned} \right]$

在实际算的过程中这里的$\Delta x$,$\Delta y$也不用取太小一般$1\times {{10}^{-7}}$左右就可以了。

2.2 某些有约束优化问题可以转化为无约束优化问题:

\[\begin{aligned}& \operatorname{minimize}\text{  }f({{x}_{1}},{{x}_{2}})\text{         }\operatorname{minimize}\text{  }f({{x}_{1}},{{x}_{2}}) \\& \text{               }{{x}_{1}}>0\text{      }\Rightarrow \text{                   }{{x}_{1}}={{{\hat{x}}}^{2}}_{1} \\& \text{               }{{x}_{2}}\le -30\text{                         }-\text{30}-{{x}_{2}}\text{=}{{{\hat{x}}}^{2}}_{2}\text{ }\Rightarrow -\text{30}-{{{\hat{x}}}^{2}}_{2}\text{=}{{x}_{2}} \\\end{aligned}\]

把上式中左边的不等式优化,转化为右边的等式优化,再把等式代入目标函数中,形成了式(24)这样的无约束优化问题:

\[\operatorname{minimize}\text{  }f({{\hat{x}}_{1}},{{\hat{x}}_{2}})\]

通过优化求解得到满足上式的次优解$\left( {{{{\hat{x}}'}}_{1}},{{{{\hat{x}}'}}_{2}} \right)$,则原优化问题的解可以写为:

\[\begin{aligned}& \text{ }{{x}_{1}}={{\left( {{{{\hat{x}}'}}_{\text{1}}} \right)}^{\text{2}}} \\& {{x}_{2}}\text{=}-\text{30}-{{\left( {{{{\hat{x}}'}}_{2}} \right)}^{\text{2}}} \\\end{aligned}\]

这样的做法会增加目标函数的非线性度,但是很好的把有约束问题转变为无约束问题。下面这个带约束的优化问题同样可以用上述方式处理:

\[\begin{aligned}& \operatorname{minimize}\text{  }f({{x}_{1}},{{x}_{2}})\text{         }\operatorname{minimize}\text{  }f({{x}_{1}},{{x}_{2}}) \\ & \text{               3}\le {{x}_{1}}\le 12\text{      }\Rightarrow \text{                   } \\\end{aligned}\]

这里的转化,我想着用Sigmoid函数(logistic函数):

$f\left( x \right)=\frac{1}{1+{{e}^{-x}}}$

它的图像如下:

这样就可以用下面这个式子代替上述对${{x}_{1}}$的约束:

${{x}_{1}}=\frac{9}{1+{{e}^{-\hat{x}}}}+3$

它的图像如下

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

  1. ChemDraw Pro绘制无环链结构的两种方法

    ChemDraw Pro 14是一款专门针对化学图形绘制而开发制作的编辑软件,是目前工科类常用的绘制化学结构工具,用于快速绘制常用的环结构组成.以下教程讲解ChemDraw Pro绘制无环链结构的两种 ...

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

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

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

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

  4. 02(a)多元无约束优化问题

    2.1 基本优化问题 $\operatorname{minimize}\text{    }f(x)\text{       for   }x\in {{R}^{n}}$ 解决无约束优化问题的一般步骤 ...

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

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

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

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

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

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

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

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

  9. MATLAB进行无约束优化

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

随机推荐

  1. C#读取文件夹特定文件的方法

    public image[] getImages() { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog ...

  2. Bootstrap 图片形状

    @{    Layout = null;}<!DOCTYPE html><html><head>    <meta name="viewport&q ...

  3. C#调用C/C++ DLL 参数传递和回调函数的总结

    原文:C#调用C/C++ DLL 参数传递和回调函数的总结 Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a ...

  4. [原译]WPF绘制圆角多边形

    原文:[原译]WPF绘制圆角多边形 介绍 最近,我发现我需要个圆角多边形.而且是需要在运行时从用户界面来绘制.WPF有多边形.但是不支持圆角.我搜索了一下.也没找到可行的现成例子.于是就自己做吧.本文 ...

  5. Simple BeamSearch Codes for Python

    Code from: https://github.com/SeitaroShinagawa/simple_beamsearch probs = [[[],[0.3,0.7]], [[0],[0.1, ...

  6. 指定Qt程序运行的style,比如fusion(以前没见过QStyleFactory)

    转载请注明文章:指定Qt程序运行的style,比如fusion 出处:多客博图 代码很简单,如下: #include <QtWidgets/QApplication>   #include ...

  7. C#有哪几种定时器

    1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里 System.Windows.For ...

  8. delphi程序向另一个可执行程序发消息(使用GetForegroundWindow; 找出当前操作系统中活动的第一个窗口)

    function FindWindowThroughWindowText(WindowText: string): THandle;var  hCurrentWindow: THandle;  cnt ...

  9. AStyle 2.02版本 AStyle(全称Artistic Style)是一个C、C++、C#和Java源代码缩进、格式化和美化工具

    http://download.csdn.net/detail/akof1314/3323725

  10. 关于联合体union的详细解释

    1.概述 联合体union的定义方式与结构体一样,但是二者有根本区别. 在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和.而在“联合”中,各成员共享一段内存空间,一个联合变量的长度 ...