MATLAB优化工具箱
针对具体工程问题建立优 化设计的数学模型
不等式约束条件表示成g(X)≥0的形式
建立目标函数文件
文件内容:必须的输入参数、描述目标函数表达式等 存储:以自定义的目标函数文件名存储在文件夹中 文件内容:必须的输入参数、约束函数表达式等 存储:以自定义的约束函数文件名存储在文件夹中
建立约束函数文件
建立调用优化工具函 数的命令文件
MATLAB优化工具箱
Optimization Toolbox
1.1 背景
一、优化工具箱简介
优化理论是一门实践性很强的学科。它被广泛 应用于生产管理、军事指挥和科学实验等各种 领域,如工程设计中的最优设计,军事指挥中 的最优火力配置问题等。优化理论和方法奠基 于20世纪50年代。
MATLAB的优化工具箱提供了对各种优化问题 的一个完整的解决方案。其内容涵盖线性规划, 二次规划、非线性规划、最小二乘问题、非线 性方程求解、多目标决策、最小最大问题、以 及半无限问题等的优化问题。其简洁的函数表 达、多种优化算法的任意选择、对算法参数的 自由设置,可使用户方便灵活地使用优化函数。
(2)编写求解二次规划的M文件: 结果 H=[4,-2,0;-2,4,0;0,0,2]; Aeq=[2,-1,1]; xopt=[2.571,1.143,0.000] beq=[4]; C=[0,0,1]; fopt=-16.4898 lb=zeros(3,1); A=[1,3,2]; [xopt,fopt]=quadprog(H,C,A,b,Aeq,beq,l b=[6]; b) [xopt, fopt]=quadprog( H, C, A, b, Aeq, beq, lb, ub, x0, options)
1 ,其中: 解:(1)将目标函数写成二次函数的形式 f ( X) 2 XT HX CT X
x1 X x 2 x 3
4 2 0 H 2 4 0 0 2 0
x1 , x2 , x3 0
0 C 0 1
2 2 2 2
2 2x3 ≤ 2 2x3 ≤ 2 2x3 ≤ 3 3x3
600 400 800 合计 1800千克
二、例题
解: 1.确定决策变量: 设生产A、B、C三种产品的数量分别是x1,x2,x3,决策变量: X=[x1,x2,x3]T 2.建立目标函数: 根据三种单位产品的利润情况,按照实现总的利润最大化, 建立关于决策变量的函数: 4.编制线性规划计算的M文件 5.M文件运行结果: max2x1+4x2+3x3 ’ f=[ - 2, - 4, -3] Optimization terminated 3.确定约束条件: 根据三种资料数量限制,建立三个线性不等式约束条件 A=[3,4,2;2,1,2;1,3,2]; successfully. b=[600;400;800]; 3x1+4x2+2x3≤600 xopt =0.0000 Aeq=[];beq=[]; 2x1+x2+2x3≤400 66.6667 x1+3x2+2x3≤800 lb=zeros(3,1); 166.6667 x1,x2,x3≥0 [xopt,fopt]=linprog(f,A,b,Aeq,beq,lb) ;fopt=-766.6667 [xopt, fopt]=linprog( f, A, b, Aeq, beq, lb, ub, x0, options)
分析优化设计的数学模型,选择适用的优化工具函数 文件内容:初始点,设计变量的边界约束条件, 运算结果输出等内容 存储:以自定义的命令文件名存储于文件夹中。
将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解。
模型输入时需要注意问题: (1) 目标函数最小化; (2) 约束非正; (3) 避免使用全局变量。
1.3 二次规划问题
一、二次规划问题数学模型
1.研究意义: (1)最简单的非线性规划问题; (2)求解方法比较成熟。 决策变量 2.数学模型形式:
min f (X)
目标函数
s.t. AX≤b (线性不等式约束条件) 约 束 AeqX=beq (线性等式约束条件) 二次 条 件 函数 lb ≤X ≤ub (边界约束条件) 3.MATLAB中函数调用格式 [xopt, fopt]=quadprog(H,C, A, b, Aeq, beq, lb, ub, x0, options)
最 优 解
最 优 值
数变 数 目 向量 各 标 量系 维 函
初 始 点
可 选 项
二、例题
生产规划问题:某厂利用a,b,c三种原料生产A,B,C三种产品,已 知生产每种产品在消耗原料方面的各项指标和单位产品的利 润,以及可利用的数量,试制定适当的生产规划使得该工厂 的总利润最大。 生产每单位产品所消耗的原料 现有原料数 A→x1 B→x2 C→x3 量(千克) a b c 单位产品利润 (万元) 3 3x1 2 2x1 1 x1 2 2x1 4x + +4 + 1 3xx + +3 + 4 + 4x +
最 优 解
Hale Waihona Puke 1 T X HX C T X 2
最 优 值
赛数 目 矩的 标 阵海 函
数次 数 目 向项 的 标 量系 一 函
初 始 点
可 选 项
二、例题
2 2 2x2 x 求解约束优化问题 f (X) 2x1 2 3 2x1x2 x3 s.t. g( X) x1 3x2 2x3 6 h( X) 2x1 x2 x3 4
二、常用的优化功能函数
求解线性规划问题的主要函数是linprog。
求解二次规划问题的主要函数是quadprog。
求解无约束非线性规划问题的主要函数是fminbnd、fminunc
和fminsearch。
求解约束非线性规划问题的主要函数是fgoalattain和 fminimax。
三、一般步骤
主要函数
输入变量
输出变量
1.2 线性规划问题
一、线性规划数学模型
1.主要应用对象: (1)在有限的资源条件下完成最多的任务; (2)如何统筹任务以使用最少资源。 非负数 2.数学模型形式: 决策变量 min f TX 目标函数 s.t. AX≤b (线性不等式约束条件) 约 束 AeqX=beq (线性等式约束条件) 线 条 件 性 lb ≤X ≤ub (边界约束条件) 3.MATLAB中函数调用格式 [xopt, fopt]=linprog( f, A, b, Aeq, beq, lb, ub, x0, options)