MATLAB优化问题
1.无约束的优化问题
fminbnd
fminsearch
fminunc %求解不连续的函数极值问题效果不佳
fminimax
以及
fmincon % 解决有约束的问题,被称作万能函数
2.有约束的优化问题
(1)线性规划
一般形式
例:
标准形式为:
matlab求解
针对上边的标准形式,matlab的求解函数为linprog 调用格式为
注意:当函数后面的参数缺失时,可以直接略去,如
但缺失中间的参数,需要用空数组符号[]补位。如
例:求解线性规划问题
解:
(1)化为标准形式
(2)写成矩阵形式
其中
C=[-2,1,-1]; A=[1,1,1;-2,0,1]; b=[1;-2];
代码:
C=[-2,1,-1];
A=[1,1,1;-2,0,1];
b=[1;-2];
X=linprog(C,A,b,[],[],zeros(3,1))
(2)混合数学规划问题
当线性规划模型中存在整数变量,则称为整数规划模型或混合规划模型。
在整数变量中,一种重要的整数变量是0-1变量,它在处理定性的量中有重要应用。
线性整数规划求解的matlab函数为 X=intlinprog(c,intcon,A,b,A1,b1,L,U);
函数的参数与linprog相同,只是在c后面添加参量intcon,用来指示哪些变量是整数变量。如intcon=[2,3]表示第2,3个变量是整变量。
例:计算
f=[8,1];intcon=[2];
A=[-1 -2-4 -12 1];
b=[14;-33;20];
L=[0;0];
x=intlinprog(f,intcon,A,b,[],[],L)
01整数规划
例:某企业拟在8个居民区A1,A2,…,A8建若干个门店,门店的备选地址有B1,B2,…,B6。各备选地址能覆盖的居民区如下表:
备选地址 |
B1 |
B2 |
B3 |
B4 |
B5 |
B6 |
覆盖小区 |
A1,A5, A7 |
A1,A2,A5,A8 |
A1,A3, A5 |
A2,A4, A8 |
A3,A6 |
A4,A6, A8 |
如何选址,可以用最少的门店覆盖所有居民区
解:
(1)决策变量:决策是门店选址,应使用0-1变量 ,xi=1,即选择Bi,i=1,2,…,6
(2)目标:总门店数最少,即 min x1+x2+…+x6
(3)约束条件:
- 覆盖A1: x1+x2+x3>=1
- 其他类似:x2+x4>=1
- x3+x5>=1
- x4+x6>=1
- x1+x2+x3+x5>=1
- x5+x6>=1
- x1>=1
- x2+x4+x6>=1
代码:
c=ones(6,1); intcon=1:6;
A=[1 1 1 0 0 00 1 0 1 0 00 0 1 0 1 00 0 0 1 0 11 1 1 0 1 00 0 0 0 1 11 0 0 0 0 00 1 0 1 0 1];
b=ones(8,1);
x=intlinprog(c,intcon,-A,-b,[],[],zeros(6,1), ones(6,1))
(3)二次规划
当目标函数是二次函数时,数学规划称为二次规划 二次规划的标准形式如下(目标函数为二次,约束条件为线性)
x = quadprog(H,f)
x = quadprog(H,f,A,b)
x = quadprog(H,f,A,b,Aeq,beq)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)
求解非线性规划问题:min 1/2*x’*H*x, A*x ≤ b, Aeq*x = beq;lb ≤ x ≤ ub;
注意:H 为二次型系数矩阵
例:解下列二次规划
H = [1 -1; -1 2];
f = [-2; -6];
A = [1 1; -1 2; 2 1];
b = [2; 2; 3];
lb = zeros(2,1);
opts = optimoptions('quadprog','Algorithm','active-set');
[x,fval] = quadprog(H,f,A,b,[],[],lb,[],[],opts)
(4)非线性规划
Matlab中的非线性规划为以下规范形式:
函数形式:[x,f] = fmincon(fun,x0,A,b,Aeq,beq, L, U, nonlcon)
x=fmincon (fun, 初值, A, b )
x=fmincon (fun, 初值, A, b, Aeq,beq )
x=fmincon (fun, 初值, A, b, Aeq, beq, lb, ub )
x=fmincon (fun, 初值, A,b,Aeq,beq,lb,ub,nonlcon, options)
fun写成如下的M-函数形式 (objfun.m) :
function f = objfun (x)
f = f(x);
end
非线性约束条件写成如下的M-函数形式
function [c,ceq]=nonlcon(x)
c = c(x);
ceq=ceq(x);
end
[x, f]=fmincon (...)同时返回解x处的函数值
例:
解:
第一步,化为标准形式,这里约束条件无线性函数,也无等式约束
第二步,在 editor窗口写目标函数,保存
function f = objfun(x)
f = -x(1)^2*x(2)*x(3)^2/(2*x(1)^3*x(3)^2+3*x(1)^2*x(2)^2+2*x(2)^2*x(3)^3+x(1)^3*x(2)^2*x(3)^2);
end
第三步,在 editor窗口写非线性约束函数,保存
function [c, ceq] = nonlincon(x)
c=[-x(1)^2-x(2)^2-x(3)^2+1; x(1)^2+x(2)^2+x(3)^2-4];
ceq = [ ];
end
第四步,在commond window求解
options = optimset('Algorithm', 'interior-point', 'Display', 'off'); %设置算法[x,fval] = fmincon(@objfun, [1,1,1],[],[],[],[],[0,0,0],[],@nonlincon, options)
MATLAB优化问题相关推荐
- 利用Matlab优化工具箱解数独问题
前一阵使用Matlab的优化工具箱,发现可以求解数独问题,有意思!实际上,Matlab优化工具箱有两个:Optimization Toolbox和Global Optimization Toolbox ...
- Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划
Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划 目录 PrA之nLP非线性规划算法 操作图文教程 PrA之nLP非线性规划算法 (1).编写M ...
- matlab中线性变压器,用MATLAB优化计算差动变压器的线性范围
基金项目:河南省自然科学基金资助项目(994043500) 作者简介:胡明江(1974 - ) ,男 ,河南洛阳人 ,硕士生. 收稿日期:2003 - 04 - 23 文章编号 :1672 - 687 ...
- MATLAB优化算法(一)
1.线性规划 [x,fval]=linprog(c,A,b,Aeq,Beq,VLB,VUB) 用于解决 min(z)=cX%%求满足条件的X与已定系数c乘积之和的最小值 s.t. AX<=b ...
- help efun matlab,Matlab优化工具箱在函数最值求解中的应用.pdf
Matlab优化工具箱在函数最值求解中的应用.pdf 系 统 解 决 方 案 Matlab优化工具箱在函数最值求解中的应用 彭东海 (中山职业技术学院数学教研室,广 东 中山 528404) 摘 要 ...
- 非线性优化汇总——Matlab优化工具箱(持续更新中)
非线性优化汇总--Matlab优化工具箱(持续更新中) 室内定位/导航/优化技术探讨:WX: ZB823618313 原创不易,路过的各位大佬请点个赞 目录 非线性优化汇总--Matlab优化工具箱( ...
- 最优化问题的Matlab优化工具箱求解总结
第一次发文,个人总结,可以一起讨论,如有问题,感谢指出. 1.常规算法 MATLAB 目标函数 约束条件 决策变量 非线性 多目标 上下界 线性 非线性 整数 无初始值 linprog √ √ √ i ...
- MATLAB优化工具箱—Optimization Toolbox™
Optimization Toolbox™ 提供了寻找最小化或最大化目标并同时满足约束条件的函数.工具箱中包括了线性规划 (LP).混合整数线性规划 (MILP).二次规划 (QP).非线性规划 (N ...
- Matlab优化工具箱——Optimization Toolbox
最优化模型的一般形式: 一.三大要素 决策变量 decision bariable 式(1)称为目标函数 objective function 式(2)称为约束条件 constraints (2 ...
- 2021-02-28 Matlab优化拟合曲线
Matlab优化拟合曲线 分享一下使用非线性函数对数据进行拟合.非线性函数假定是标准指数衰减曲线, y(t)=Aexp(−λt) 其中,y(t) 是时间 t 时的响应,A 和 λ 是要拟合的参数.对曲 ...
最新文章
- 解决wubi安装ubuntu时要下载系统映像文件问题
- python自学教材-最好的Python入门教材是哪本?
- excel 复制数据 sql server 粘贴_数据资料复制粘贴麻烦?教你硬盘对拷资料
- python查找指定文件路径_Python寻找路径和查找文件路径的示例
- Java GUI编程:swing创建窗体代码详解
- dvwa安装包linux,dvwa安裝、配置、使用教程(Linux)
- 海思hi3518 移植live555 实现H264的RTSP播放
- 小程序和H5 之间的通信
- win10装kali linux双系统,win10安装kali组成双系统攻略
- 学前端的记录帖html+css b站千峰19版
- lidar_camera_calib学习笔记(激光雷达相机标定)
- 【python】pandas的excel处理:员工薪水分析
- C#命名规范(参考) (II)
- 华为RH2288 V3 服务器 配置raid 删除raid配置
- 花落谁家---再见熊节
- Win10开机时怎么跳过磁盘检查?
- Java添加水印(图片水印,文字水印)
- 当超强台风“山竹”即将冲进南海,Power BI 你怎么看?
- linux kernal pwn WCTF 2018 klist(一)
- 广角相机app哪个比较好用_有哪些好看的手机拍照软件?
热门文章
- mac 多java环境变量配置_java_Mac安装多个JDK版本并设置环境变量
- AUTOMAKE\AUTOCONF
- MyBatis 源码解读-settingsElement(settings)
- spring cloud netflix
- 微服务宏观把控与深入剖析
- 使用PyCharm定义QQ变量
- php paypal订单号查询,php – 在交易后从PayPal获取信息
- Spring注解编程基石(四)
- Spring--@within和@target的区别
- python实现二叉搜索树_python实现二叉查找树