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)约束条件:

  1. 覆盖A1:   x1+x2+x3>=1
  2. 其他类似:x2+x4>=1
  3. x3+x5>=1
  4. x4+x6>=1
  5. x1+x2+x3+x5>=1
  6. x5+x6>=1
  7. x1>=1
  8. 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优化问题相关推荐

  1. 利用Matlab优化工具箱解数独问题

    前一阵使用Matlab的优化工具箱,发现可以求解数独问题,有意思!实际上,Matlab优化工具箱有两个:Optimization Toolbox和Global Optimization Toolbox ...

  2. Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划

    Algorithm之PrA:PrA之nLP非线性规划算法+Matlab 优化工具箱的GUI求解非线性规划 目录 PrA之nLP非线性规划算法 操作图文教程 PrA之nLP非线性规划算法 (1).编写M ...

  3. matlab中线性变压器,用MATLAB优化计算差动变压器的线性范围

    基金项目:河南省自然科学基金资助项目(994043500) 作者简介:胡明江(1974 - ) ,男 ,河南洛阳人 ,硕士生. 收稿日期:2003 - 04 - 23 文章编号 :1672 - 687 ...

  4. MATLAB优化算法(一)

    1.线性规划 [x,fval]=linprog(c,A,b,Aeq,Beq,VLB,VUB) 用于解决 min(z)=cX%%求满足条件的X与已定系数c乘积之和的最小值 s.t.  AX<=b  ...

  5. help efun matlab,Matlab优化工具箱在函数最值求解中的应用.pdf

    Matlab优化工具箱在函数最值求解中的应用.pdf 系 统 解 决 方 案 Matlab优化工具箱在函数最值求解中的应用 彭东海 (中山职业技术学院数学教研室,广 东 中山 528404) 摘 要 ...

  6. 非线性优化汇总——Matlab优化工具箱(持续更新中)

    非线性优化汇总--Matlab优化工具箱(持续更新中) 室内定位/导航/优化技术探讨:WX: ZB823618313 原创不易,路过的各位大佬请点个赞 目录 非线性优化汇总--Matlab优化工具箱( ...

  7. 最优化问题的Matlab优化工具箱求解总结

    第一次发文,个人总结,可以一起讨论,如有问题,感谢指出. 1.常规算法 MATLAB 目标函数 约束条件 决策变量 非线性 多目标 上下界 线性 非线性 整数 无初始值 linprog √ √ √ i ...

  8. MATLAB优化工具箱—Optimization Toolbox™

    Optimization Toolbox™ 提供了寻找最小化或最大化目标并同时满足约束条件的函数.工具箱中包括了线性规划 (LP).混合整数线性规划 (MILP).二次规划 (QP).非线性规划 (N ...

  9. Matlab优化工具箱——Optimization Toolbox

    最优化模型的一般形式: 一.三大要素 决策变量  decision bariable 式(1)称为目标函数  objective function 式(2)称为约束条件  constraints (2 ...

  10. 2021-02-28 Matlab优化拟合曲线

    Matlab优化拟合曲线 分享一下使用非线性函数对数据进行拟合.非线性函数假定是标准指数衰减曲线, y(t)=Aexp(−λt) 其中,y(t) 是时间 t 时的响应,A 和 λ 是要拟合的参数.对曲 ...

最新文章

  1. 解决wubi安装ubuntu时要下载系统映像文件问题
  2. python自学教材-最好的Python入门教材是哪本?
  3. excel 复制数据 sql server 粘贴_数据资料复制粘贴麻烦?教你硬盘对拷资料
  4. python查找指定文件路径_Python寻找路径和查找文件路径的示例
  5. Java GUI编程:swing创建窗体代码详解
  6. dvwa安装包linux,dvwa安裝、配置、使用教程(Linux)
  7. 海思hi3518 移植live555 实现H264的RTSP播放
  8. 小程序和H5 之间的通信
  9. win10装kali linux双系统,win10安装kali组成双系统攻略
  10. 学前端的记录帖html+css b站千峰19版
  11. lidar_camera_calib学习笔记(激光雷达相机标定)
  12. 【python】pandas的excel处理:员工薪水分析
  13. C#命名规范(参考) (II)
  14. 华为RH2288 V3 服务器 配置raid 删除raid配置
  15. 花落谁家---再见熊节
  16. Win10开机时怎么跳过磁盘检查?
  17. Java添加水印(图片水印,文字水印)
  18. 当超强台风“山竹”即将冲进南海,Power BI 你怎么看?
  19. linux kernal pwn WCTF 2018 klist(一)
  20. 广角相机app哪个比较好用_有哪些好看的手机拍照软件?

热门文章

  1. mac 多java环境变量配置_java_Mac安装多个JDK版本并设置环境变量
  2. AUTOMAKE\AUTOCONF
  3. MyBatis 源码解读-settingsElement(settings)
  4. spring cloud netflix
  5. 微服务宏观把控与深入剖析
  6. 使用PyCharm定义QQ变量
  7. php paypal订单号查询,php – 在交易后从PayPal获取信息
  8. Spring注解编程基石(四)
  9. Spring--@within和@target的区别
  10. python实现二叉搜索树_python实现二叉查找树