1、解方程转化为优化问题

$n\left\{ \begin{aligned}& {{P}_{1}}(x)=0 \\ & {{P}_{2}}(x)=0 \\ & \text{   }\vdots  \\& {{P}_{n}}(x)=0 \\\end{aligned} \right.\text{              }x=\left[ \begin{aligned}  & {{x}_{1}} \\& {{x}_{2}} \\& \vdots  \\& {{x}_{n}} \\\end{aligned} \right]\text{    (n个自变量}\text{)}$

这个方程组里面的每一个函数${{P}_{i}}(x)$都是光滑 (一般指至少存在一阶和二阶导数)的,其函数可能是线性的,也可能是非线性的。

把上述解方程的问题转化为,优化问题:

$\text{ }x=\left[ \begin{aligned}& {{x}_{1}} \\& {{x}_{2}} \\& \vdots  \\& {{x}_{n}} \\\end{aligned} \right]\text{           }\left\{ \begin{aligned}& {{P}_{1}}(x)=0\text{    }\leftrightarrow  \\& {{P}_{2}}(x)=0\text{    }\leftrightarrow \text{ } \\& \text{   }\vdots  \\& {{P}_{n}}(x)=0\text{}\leftrightarrow  \\\end{aligned} \right.\left. \begin{aligned}& {{P}_{1}}^{2}(x)=0 \\& {{P}_{2}}^{2}(x)=0 \\& \vdots  \\& {{P}_{n}}^{2}(x)=0 \\\end{aligned} \right\}\text{ }\leftrightarrow \sum\limits_{i=1}^{n}{{{P}_{i}}^{2}(x)=0}$

这解法的好处:

  • 即便方程没有解,也可以通过$\operatorname{minimize}\text{  }f(x)=\sum\limits_{i=1}^{n}{{{P}_{i}}^{2}(x)}$求得近似解;
  • 在这里不要求方程组里面的函数${{P}_{i}}(x)$是多项式,可以是三角函数、指数函数等;
  • 当方程组里面某个方程${{P}_{i}}(x)=0$比较重要时,可以通过加权值${{w}_{i}}$:(局部加权回归)

$\operatorname{minimize}\text{  }f(x)=\sum\limits_{i=1}^{n}{{{w}_{i}}{{P}_{i}}^{2}(x)}\text{         }{{\text{w}}_{i}}>0$

  • 可以通过调整权值系数,让误差平分到每个方程上面。

2、在讨论无约束优化(Unconstrained Optimization)之前,先介绍几个基本符号:

  • 梯度:gradient (vector)

$\nabla f=\left[ \begin{aligned}& \frac{\partial f}{\partial {{x}_{1}}} \\& \frac{\partial f}{\partial {{x}_{2}}} \\& \vdots  \\& \frac{\partial f}{\partial {{x}_{n}}} \\\end{aligned} \right]$

  • 海森矩阵: Hessian (matrix)

\[H(x)={{\nabla }^{2}}f(x)=\nabla ({{\nabla }^{T}}f(x))=\left[ \begin{matrix}\frac{{{\partial }^{2}}f}{\partial x_{1}^{2}} & \frac{{{\partial }^{2}}f}{\partial {{x}_{1}}\partial {{x}_{2}}} & \cdots  & \frac{{{\partial }^{2}}f}{\partial {{x}_{1}}\partial {{x}_{n}}}  \\\frac{{{\partial }^{2}}f}{\partial{{x}_{2}}\partial {{x}_{1}}} & \frac{{{\partial }^{2}}f}{\partial x_{2}^{2}} & \cdots  & \frac{{{\partial }^{2}}f}{\partial {{x}_{2}}\partial {{x}_{n}}}  \\\vdots  & \vdots  & \ddots  & \vdots   \\\frac{{{\partial }^{2}}f}{\partial {{x}_{n}}\partial {{x}_{1}}} & \frac{{{\partial }^{2}}f}{\partial{{x}_{n}}\partial {{x}_{2}}} & \cdots  & \frac{{{\partial }^{2}}f}{\partial x_{n}^{2}}  \\\end{matrix} \right]\]

对于多元函数的极值问题,按照前面讲的,有如下步骤:

1.找出一阶偏导数等于0的点——驻点(极大值点、极小值点、拐点),即:

$\nabla f=0\text{    }\leftrightarrow \text{    }\left\{ \begin{aligned}& \frac{\partial f}{\partial {{x}_{1}}}=0 \\& \frac{\partial f}{\partial {{x}_{2}}}=0 \\& \vdots  \\& \frac{\partial f}{\partial {{x}_{n}}}=0 \\\end{aligned} \right.\text{ }$

2.接着通过二阶偏导数判断其是否为极值点,是极大值还是极小值点;多元函数的二阶偏导数用Hessian matrix表示,将stepa中得到的驻点代入,Hessian matrix中与极值有如下关系:

数学基础知识补充:

  • 实对称阵:的所有特征值都是实的;
  • 正定阵:所有特征值都大于0的方阵;
  • 半正定阵:所有特征值大于或等于0的方阵;

这里差一个证明,为什么Hessian矩阵的特征值大于0,该点为极小值?(下一部分中有说明)

01(b)无约束优化(准备知识)的更多相关文章

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

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

  2. MATLAB进行无约束优化

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

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

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

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

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

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

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

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

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

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

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

  8. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

  9. 01网络编程(基础知识+OSI七层协议+TCP与UDP)

    目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...

随机推荐

  1. [ 转]Node.js模块 require和 exports

    什么是模块? node.js通过实现CommonJS的Modules/1.0标准引入了模块(module)概念,模块是Node.js的基本组成部分.一个node.js文件就是一个模块,也就是说文件和模 ...

  2. 【C++】int转string,double转string方法,string转int,string转double方法

    C++的格式比较多比较复杂,转换起来有很多方法,我这里只提供一种,仅供参考. int或double转string 使用字符串流的方式可以比较简单的完成转换 需要添加头文件 #include <s ...

  3. WPF属性(二)附加属性

    原文:WPF属性(二)附加属性 附加属性是说一个属性本来不属于某个对象,但由于某种需求而被后来附加上,也就是把对象放入一个特定环境后对象才具有的属性就称为附加属性,附加属性的作用就是将属性与数据类型解 ...

  4. 探究操作系统的内存分配(malloc)对齐策略

    问题: 我们在写程序的时候经常发现程序使用的内存往往比我们申请的多,为了优化程序的内存占用,搅尽脑汁想要优化内存占用,可是发现自己的代码也无从优化了,怎么办?现在我们把我们的焦点放到malloc上,毕 ...

  5. 【Git】生成Patch和使用Patch

    1.生成Patch(俗称快照) 先来看看repo manifest 的用法 <1>cd /工作目录/项目目录/.repo/manifests <2>repo manifest ...

  6. Android零基础入门第49节:AdapterViewFlipper图片轮播

    原文:Android零基础入门第49节:AdapterViewFlipper图片轮播 上一期学习了ExpandableListView的使用,你已经掌握了吗?本期开始学习AdapterViewFilp ...

  7. 让bootstrap表格自动出现水平滚动条

    <div class="table-responsive"><!--表格自动出现水平滚动条-> <table id="tb_departme ...

  8. Android CTS Test failed to run to conmpletion 测试超时问题

    引用“Android cts all pass 全攻略”里面的一段话: ❀ testcase timeout 测试某个testcase的时候一直出现 “........”,迟迟没有pass或者fail ...

  9. delphi多版本安装方法

    delphi tokyo和其他版本并存的安装方法 1.安装delphi 10.2 tokyo 破解后写入D:\Program Files (x86)\Embarcadero\Studio\19.0\b ...

  10. Maven 安装和使用

    Maven 安装和使用 1.下载 http://maven.apache.org/download.cgi 2.tar -bin.tar.gz 3.环境变量 /etc/profile export M ...