fmincon 函数

• 功能:求多变量有约束非线性函数的最小值。

• 数学模型:

• min F(X)

• subject to: A*X <= B, Aeq*X = Beq (线性约束)

C(X) <= 0, Ceq(X) = 0 (非线性约束)

LB <= X <= UB

其中,X, B, Beq, LB,和UB为向量,A 和Aeq 为矩阵,C(X)

和Ceq(X)为函数,返回标量。f(x), c(x), 和ceq(x)可以是非线性

函数。

• 调用格式:

[x,fval,exitflag,output]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,non

lcon,options)

Fval:目标函数在解X处的目标函数值

Exitflag:返回算法终止的状态指示结构变量

Output :优化计算结束之时返回结构变量

由于本问题中需要优化的变量只有两个,属于中等规模

优化问题。fmincon命令使用序列二次规划算法(SQP )来求

解。序列二次规划方法是将一个带有等式和不等式约束(可

以是非线性)的非线性优化问题转化为二次规划问题求解。

对于中等规模优化问题,求解二次规划问题涉及到

Hessian矩阵。Hessian矩阵的近似计算是通过拟牛顿法得到的,

拟牛顿法提供了两个公式可用于Hessian矩阵(或其逆)的迭

代:BFGS公式和DFP公式,而初始的Hessian矩阵是任意给的,

如给一个单位阵I。

MATLAB中SQP法的实现分三步,即

• 拉格朗日函数Hessian矩阵的更新;

• 二次规划问题求解;

• 一维搜索和目标函数的计算

序列二次规划(SQP)算法

• 序列二次规划(Sequential Quadratic Programming,简称SQP)

是当前公认的处理中、小规模非线性规划问题最优秀的算

法之一, 该算法通过将原问题转化为一系列二次规划子问

题的求解来获得原问题的最优解,对拉格朗日函数取二次近

似,从而提高二次规划子问题的近似程度, 对非线性较强的

优化问题也能进行计算。

• SQP方法的基本思想如下:在某个近似解处将原非线性规划

问题简化为处理一个二次规划问题,求取最优解,如果有,则

认为是原非线性规划问题的最优解, 否则, 用近似解代替构

成一个新的二次规划问题, 继续迭代。

• Matlab 优化工具箱中SQP算法的实现主要由以下三部分组成。

(1)更新拉格朗日函数的Hessian矩阵

q q T H T H

Hk 1 Hk  k k  k k (5)

q T s s T H s

k k k k k

• 式中:

m m

q f (x )  g (x ) [ f (x )  g (x )]

k k 1  i i k 1 k  i i k

i 1 i 1

s x x

k k 1 k

• 在每一次的迭代中, 采用BFGS 方法计算拉格朗日函数的

Hessian 矩阵的正定拟牛顿近似值H。只要保证为正,并且H初始

化为正定矩阵,则Hessian矩阵一直保持正定。

1 T T

min q (d ) d Hd c d (6)

d Rn 2

二次优化问题dfp_优化设计-fmincon函数介绍-序列二次的规划(SQP)-subspacetrustregion-activesett.pdf...相关推荐

  1. Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组、split函数垂直拆分二维numpy数组

    Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组.split函数垂直拆分二维numpy数组 目录

  2. 二次优化问题dfp_最优化DFP算法报告

    施 政 学号: 1010010125 班级: 1 班 专业: 通信与信息系统 目 录 1 算法流程图 ................................................. ...

  3. (转)postgis常用函数介绍(二)

    http://blog.csdn.net/gisshixisheng/article/details/47903151 概述: 书接上文,本文继续讲解Postgres中常用的空间函数的使用. 常用函数 ...

  4. 二次优化问题dfp_最优化之DFP算法考试题

    最优化之DFP算法考试题 最优化之DFP算法考试题 代码: Dfp.m文件 function [x,val,k]=dfp(fun,gfun,x0) %功能: 用DFP算法求解无约束问题: min f( ...

  5. python调用matlab程序_Python调用MATLAB实现fmincon函数

    motivation: 1.要实现"符号几何规划"的功能,使用MATLAB自带的fmincon函数来实现 2.工程的代码是通过Python来完成的,需要Python调用MATLAB ...

  6. Hive学习之路(四):Hive内置函数介绍与实现WordCount

    内容简介 一.Hive内置函数介绍 二.Hive常用内置函数介绍 1.数值计算函数 2.字符串操作函数 3.日期函数 4.聚合函数 5.表生成函数 三.使用Hive函数完成WordCount 1.创建 ...

  7. 轨迹跟踪求解Fmincon函数(2)

    1.Fmincon函数介绍 在matlab中,fmincon函数可以求解带约束的非线性多变量函数(Constrained nonlinear multivariable function)的最小值,即 ...

  8. scipy.optimize函数介绍

    scipy.optimize模块使用 前言 一.scipy.optimize模块包含什么? 二.使用步骤 1.函数介绍 前言 简单使用scipy.optimize,训练逻辑回归损失函数,得到权值. 一 ...

  9. python调用matlab 性能_Python调用MATLAB实现fmincon函数

    motivation: 1.要实现"符号几何规划"的功能,使用MATLAB自带的fmincon函数来实现 2.工程的代码是通过Python来完成的,需要Python调用MATLAB ...

最新文章

  1. MAC OS下使用OpenSSL生成私钥和公钥的方法
  2. 奥鹏数据库应用系统设计下列关于php_[南开大学(本部)]《数据库应用系统设计》20春期末考核(参考答案)...
  3. 大厂首发:java转算法工程师
  4. 字符串与byte[]之间的转换
  5. Mysql根据日期查询
  6. 双表查询java代码_多表增删改查
  7. 二元相图软件_FactSage 软件教程 入门学习资料汇总
  8. 在Ubuntu 16.04 安装python3.6 环境并设置为默认
  9. java复制sheet_Java对excel中的sheet进行拷贝
  10. 数据库爬坑MySQL
  11. token会被截取吗_新手剪辑:如何截取视频的某个片段?
  12. tmux使用(程序员适用)
  13. 网址采集器-批量URL网站链接提取-批量关键词网站采集
  14. Matlab RRT算法三维轨迹规划及贪心算法轨迹优化
  15. 笔记本计算机风扇连线,机箱风扇电源怎么接线?机箱风扇接口知识及接法图解教程...
  16. 计算机快捷键大全截图,电脑截图按什么键?电脑截图的快捷键是什么
  17. python爬取“堆糖网”小姐姐 图片
  18. 电脑qq语音连不到服务器,我的电脑不能语音聊天是怎么回事?每次qq上都提示:您的麦克风没有声音?我检查了电脑设置没问题...
  19. 激战2怎么选最新的服务器,选哪个服好?《激战2》高玩分析各服务器进驻人数...
  20. Costco市值10年增长5倍的秘诀:水坝式经营

热门文章

  1. 多云世界中的SD-WAN—Vecloud
  2. 离线安装Ubuntu虚拟机和GNURadio
  3. 广度优先搜索(BreadthFirstSearch) 迪克斯特拉算法 (Dijkstra's algorithm)
  4. LIS(最大上升子序列)
  5. JAVA开发环境的搭建(配置JAVA开发环境)
  6. robotframe使用之时间控件
  7. 404错误处理以及以后缀为action结尾的处理
  8. Python中的yield生成器的简单介绍
  9. poj3050【dfs】
  10. 查看LINUX进程内存占用情况