非线性规划问题的基本内容

非线性规划解决的是自变量在一定的非线性约束或线性约束组合条件下,使得非线性目标函数求得最大值或者最小值的问题。

当目标函数为最小值时,上述问题可以写成如下形式:

\[ \min z={F(x)} \]

\[ \text { s.t. } \left\{\begin{array}{l} {\mathbf{A}\mathbf{X} \leqslant \mathbf{B}} \\ {\mathbf{A}_{\mathrm{eq}} \mathbf{X}=\mathbf{B}_{\mathrm{eq}}} \\ G(x) \leqslant 0 \\ H_{\mathrm{eq}}(x) = 0 \\ {\mathbf{LB} \leqslant \mathbf{X} \leqslant \mathbf{UB}} \end{array}\right. \]

其中

\(F(x)\) 为非线性目标函数

\(G(x)\) 为非线性不等式约束条件

\(H_\mathrm{eq}(x)\) 为非线性等式约束条件

\(\mathbf{X}\) 为决策变量向量

\(\mathbf{A}\) 为线性不等式系数矩阵

\(\mathbf{B}\) 为线性不等式右端常数向量

\(\mathbf{A}_\mathrm{eq}\) 为线性等式系数矩阵

\(\mathbf{B}_\mathrm{eq}\) 为线性等式右端常数向量

\(\mathbf{L B}\) 为决策变量下界向量

\(\mathbf{U B}\) 为决策变量上界向量

Matlab模型代码

调用形式

    [X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON) % 统一形式[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = fmincon(F,X0,A,B,Aeq,Beq,LB,UB,NONLCON) % 线性目标函数,包含非线性约束[X,FVAL,EXITFLAG,OUTPUT,LAMBDA] = fmincon(@(X)MYOBJ(X),X0,A,B,Aeq,Beq,LB,UB,@(X)MYCON(X)) % 自己定义目标函数和非线性约束函数% 目标函数function F = MYOBJ(X)F = ......% 非线性约束函数function [G,Heq] = MYCON(X)G = ..... % 非线性不等式约束条件Heq = ..... % 非线性等式约束条件

输入变量

  • FUN 为目标函数,可以自己定义,输入变量X,输出目标值
  • X0 为初始解
  • A 为不等式约束系数矩阵(注意默认不等式方向为小于等于,若为大于等于,需要将其取相反数)
  • B 为不等式右端常数向量(注意默认不等式方向为小于等于,若为大于等于,需要将其取相反数)
  • Aeq 为等式约束系数矩阵
  • Beq 为等式右端常数向量
  • LB 为决策变量下界向量
  • UB为决策变量上界向量
  • NONLCON 为非线性约束,可以自己定义,其中包括非线性不等式约束,非线性等式约束两种约束。输入变量X,输出不等式计算值,等式计算值

在调用时,输入参数不存在时,可以将其输入用 [] 空矩阵表示。

输出变量

  • X 为最优解
  • FVAL 为最优目标值
  • EXITFLAG 为运行结束标志,当等于1时,表示程序收敛于解 X;当等于0时,表示程序运行次数到达最大;当小于0时,说明情况较多
  • OUTPUT 为程序迭代次数
  • LAMBDA 为解X相关的Largrange乘子和影子价格

案例演示

目标函数与约束条件

\[\min f(x)=x_{1}^{2}+x_{2}^{2}+8\] \[\text { s.t. }\left\{\begin{array}{l}{x_{1}^{2}-x_{2} \geq 0} \\ {-x_{1}-x_{2}^{2}+2=0} \\ {x_{1}, x_{2} \geq 0}\end{array}\right.\]

Matlab程序

clc
clear
close all
x0=rand(2,1); % 随机产生初始解
A=[];
B=[];
Aeq=[];
Beq=[];
LB=[0,0];
UB=[];
[x,fval,exitflag]=fmincon(@(x)myobj(x),x0,A,B,Aeq,Beq,LB,UB,@(x)mycon(x))% 目标函数
function F = myobj(x)
F = x(1)^2+x(2)^2+8;
end% 非线性约束函数
function [G,Heq] = mycon(x)
G = -x(1)^2+x(2);
Heq = -x(1)-x(2)^2+2;
end

运行结果

x =1.00001.0000fval =10.0000exitflag =1

转载于:https://www.cnblogs.com/gshang/p/11490571.html

Matlab 非线性规划问题模型代码相关推荐

  1. Matlab 线性规划问题模型代码

    线性规划问题的基本内容 线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题. \[ \min z=\sum_{j=1}^{n} f_{j} x_{j} \] \[ ...

  2. Matlab 图论最短路问题模型代码

    最短路问题的基本内容 最短路问题研究的是,在一个点与点之间连接形成的网络图中,对应路径赋予一定的权重(可以理解为两点之间的距离),计算任意两点之间如何和走,路径最短的问题.在这里的距离可以理解成各种两 ...

  3. Matlab 模拟退火算法模型代码

    function [best_solution,best_fit,iter] = mySa(solution,a,t0,tf,Markov) % 模拟退化算法 % ===== 输入 ======% % ...

  4. Matlab 整数线性规划问题模型代码

    整数线性规划问题的基本内容 整数线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题.其中自变量只能取整数.特别地,当自变量只能取0或者1时,称之为 0-1 整数规 ...

  5. MATLAB的超效率SBM-DEA模型代码 可以做期望产出和非期望产出的超效率和非超效率sbm模型和Malmquist指数和分解

    MATLAB的超效率SBM-DEA模型代码(有安装教程和内容讲解之类的东西),操作很简单 可以做期望产出和非期望产出的超效率和非超效率sbm模型和Malmquist指数和分解 ID:669695527 ...

  6. sbm预测matlab,**matlab计算非期望产出sbm模型代码**

    matlab计算非期望产出sbm模型代码 data1=xlsread('E:\论文材料\毕业论文\02.xlsx',1) data2=xlsread('E:\论文材料\毕业论文\02.xlsx',2) ...

  7. 永磁同步电机模型预测控制,自抗扰控制,滑模控制等matlab仿真及ccs代码。

    永磁同步电机模型预测控制,自抗扰控制,滑模控制等matlab仿真及ccs代码. ID:13800650571175155简熙纯净水

  8. [原创] Matlab 指派问题模型代码

    指派问题的基本内容 一般来说指派问题解决的是如何将任务分配到人,使得任务完成的效益最大化(成本型效益则求最小值,利润型效益则求最大值).上述问题一个 0 - 1 整数规划问题. 问题围绕着任务和人展开 ...

  9. matlab指派问题优化,[原创] Matlab 指派问题模型代码

    指派问题的基本内容 一般来说指派问题解决的是如何将任务分配到人,使得任务完成的效益最大化(成本型效益则求最小值,利润型效益则求最大值).上述问题一个 0 - 1 整数规划问题. 问题围绕着任务和人展开 ...

最新文章

  1. 【SQL Server】系统学习之一:表表达式
  2. MCSE2003学习之三
  3. 前端javascript实现二进制读写操作
  4. 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构
  5. Python之操作HBASE数据库
  6. el-select下拉框组件el-option如何使用v-for动态渲染问题 - 方法篇
  7. Windows文件服务器会话清理,在 Windows Server 上使用磁盘清理
  8. 如何判断链表中存在环路
  9. 为系统扩展而采取的一些措施——缓存
  10. 身边朋友财富自由的故事
  11. java笔试题_一道简单的 Java 笔试题,但值得很多人反思
  12. word 文档 一次性设置多张图片大小
  13. python writelines_详解详解Python中writelines()方法的使用
  14. [RK3399][Android7.1] DDR动态频率调节驱动小结
  15. Bluetooth core 5.0 ---------- BR/EDR 安全简单配对(BR/EDR secure simple pairing)
  16. C Primer Plus第六版第五章运算符,表达式,语句源码
  17. 小米机器人虚拟墙设置_大家都有就它独缺,姗姗来迟的虚拟墙方案终更新,小米扫地机器人...
  18. 第6章 PPT页面排版与高级设计技术
  19. MMX和SSE的运用
  20. 【Python基础】Python语法入门

热门文章

  1. Oracle版本对应得使用的jar包
  2. python程序的控制结构
  3. 在合并单元格中数组公式无效_Excel中合并单元格困扰多年的难题,终于被我搞定了...
  4. 最新EOS合约教程,从系统到环境,从创建到部署,从前端到后台,Dapp开发
  5. SEO如何做会更受蜘蛛喜爱抓取,达到事半功倍的效果?
  6. 如何提升蜘蛛的抓取频率?
  7. cad图纸目录自动生成插件_如何自动生成论文目录?
  8. python 快速排名发包_2020年SEO快速排名发包技术及原理
  9. (转载)解决macOS /usr/include 无法写入或者不存在的问题
  10. (转载)IP、主机名和域名