MATLAB优化工具箱

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

x1 2 h A hctg X ch 其中设计变量: 管道截面积: x 64516 2
64516 c hctg h
64516 2h 64516 2 x1 hctg x1ctgx2 min s h sin x1 sin x 2
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
针对具体工程问题建立优 化设计的数学模型
不等式约束条件表示成g(X)≥0的形式
建立目标函数文件
文件内容:必须的输入参数、描述目标函数表达式等 存储:以自定义的目标函数文件名存储在文件夹中 文件内容:必须的输入参数、约束函数表达式等 存储:以自定义的约束函数文件名存储在文件夹中
建立约束函数文件
建立调用优化工具函 数的命令文件
最 优 解
最 优 值
数变 数 目 向量 各 标 量系 维 函
初 始 点
可 选 项
二、例题
生产规划问题:某厂利用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 +
分析优化设计的数学模型,选择适用的优化工具函数 文件内容:初始点,设计变量的边界约束条件, 运算结果输出等内容 存储:以自定义的命令文件名存储于文件夹中。
将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解。

模型输入时需要注意问题: (1) 目标函数最小化; (2) 约束非正; (3) 避免使用全局变量。
MATLAB优化工具箱
Optimization Toolbox
1.1 背景
一、优化工具箱简介

优化理论是一门实践性很强的学科。它被广泛 应用于生产管理、军事指挥和科学实验等各种 领域,如工程设计中的最优设计,军事指挥中 的最优火力配置问题等。优化理论和方法奠基 于20世纪50年代。

MATLAB的优化工具箱提供了对各种优化问题 的一个完整的解决方案。其内容涵盖线性规划, 二次规划、非线性规划、最小二乘问题、非线 性方程求解、多目标决策、最小最大问题、以 及半无限问题等的优化问题。其简洁的函数表 达、多种优化算法的任意选择、对算法参数的 自由设置,可使用户方便灵活地使用优化函数。
设置优化选项参数 初始点 目标函数 返回目标函数的最优值 返回目标函数的最优解
1.4.2函数fminsearch
2.例题:求解二维无约束优化问题 f(x)=(x14+3x12+x22-2x1-2x2-2x12x2 +6)的极小值。 解:(1)编制求解二维无约束优化问题的M文件。 %求解二维优化问题 fun='x(1)^4+3*x(1)^2+x(2)^2-2*x(1)-2*x(2)-2*x(1)^2*x(2)+6'; x0=[0,0]; %初始点 [xopt,fopt]=fminsearch(fun,x0) (2)讨论。 将目标函数写成函数文件的形式: %目标函数文件search.m function f=search(x) f=x(1)^4+3*x(1)^2+x(2)^2-2*x(1)-2*x(2)-2*x(1)^2*x(2)+6; 则命令文件变为: %命令文件名称为eg9_4.m x0=[0,0]; %初始点 [xopt,fopt]=fminsearch(@search,x0)
最 优 解
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
运行结果: xopt = 1.0000 2.0000 fopt = 4.0000
1.4.3函数fminunc
附加参数
1.使用格式: [x,fval,exitflag,output,grad,hessian]=fminunc(@fun,x0,options,P1,P2…)
设置优化选项参数 初始点 调用目标函数的函数文件名 目标函数在最优解的海色矩阵
计算结果 截面高度h x(1)=192.9958mm 斜边夹角θ x(2)=60.0005度 截面周长s f=668.5656mm
[x,fval,exitflag,output,grad,hessian]=fminbnd(@fun,x0,options,P1,P2…)
1.4.3函数fminunc
2.例题: 解:(1)建立优化设计数学模型 (2)编写求解无约束非线性优化问题的M文件 (3)编写绘制一维函数图形的M文件
(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)
二、常用的优化功能函数

求解线性规划问题的主要函数是linprog。


求解二次规划问题的主要函数是quadprog。
求解无约束非线性规划问题的主要函数是fminbnd、fminunc
和fminsearch。

求解约束非线性规划问题的主要函数是fgoalattain和 fminimax。
三、一般步骤
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)
运行结果: xopt = 0.5223 fopt = 0.3974
(2)编制一维函数图形的M文件。 ezplot(fun,[0,10]) title('(x^3+cosx+xlogx)/e^x') grid on
1.4.2函数fminsearch
1.使用格式: [xopt,fopt]=fminsearch(fun,x0,options)
1.4 无约束非线性规划问题
无约束非线性规划问题的MATLAB函数有
fminbnd
只求解单变量问题 要求目标函数为连续函数
fminsearch
适用于简单优化问题 可求解单变量和多变量问题
fminunc
可求解复杂优化问题
1.4.1函数fminbnd
1.使用格式: [xopt,fopt]=fminbnd(fun,x1,x2,options)
主要函数
输入变量
输出变量
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)
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)
设置优化选项参数 迭代搜索区间 目标函数 返回目标函数的最优值 返回目标函数的最优解
1.4.1函数fminbnd
2.例题: 求解一维无约束优化问题f(x)=(x3+cosx+xlogx/ex) 在区间[0,1]中的极小值。 解:(1)编制求解优化问题的M文件。 %求解一维优化问题 fun=inline(‘(x^3+cos(x)+x*log(x))/exp(x)’,‘x’);%目标函数 x1=0;x2=1;%搜索区间 [xopt,fopt]=fminbnd(fun,x1,x2)
x1
x2
1.4.3函数fminunc
64516 2x 1 2.例题: f ( X) x1ctgx 2 x1 sin x 2 解:(1)建立优化设计数学模型 (2)编写求解无约束非线性优化问题的M文件
目标函数的文件(sc_wysyh.m): function f=sc_wysyh(x) %定义目标函数调用格式 a=64516;hd=pi/180; f=a/x(1)-x(1)/tan(x(2)*hd)+2*x(1)/sin(x(2)*hd); %定义目标函数 求最优化解时的命令程序: x0=[25,45]; %初始点 [x,Fmin]=fminunc(@sc_wysyh,x0); %求优语句 fprintf(1,'截面高度h x(1)=%3.4fmm\n',x(1)) fprintf(1,'斜边夹角θ x(2)=%3.4f度\n',x(2)) fprintf(1,'截面周长s f=%3.4fmm\n',Fmin)
xx1=linspace(100,300,25); xx2=linspace(30,120,25); [x1,x2]=meshgrid(xx1,xx2); a=64516;hd=pi/180; f=a./x1-x1./tan(x2*hd)+2*x1./sin(x2*hd); subplot(1,2,1); h=contour(x1,x2,f); clabel(h); axis([100,300,30,120]) xlabel('高度 h/mm') ylabel('倾斜角\theta/(^{。})')
返回目标函数在最优解的梯度 优化算法信息的一个数据结构 返回算法的终止标志 返回目标函数的最优值
返回目标函数的最优解
Baidu Nhomakorabea
1.4.3函数fminunc
2.例题: 已知梯形截面管道的参数是:底边长度c,高度h,面积 A=64516mm2,斜边与底边夹角为θ。管道内液体的流速与管 道截面的周长s的倒数成比例关系。试按照使液体流速最大确 定该管道的参数。 解:(1)建立优化设计数学模型 θ h 2h 管道截面周长 s c c f(X) sin
相关文档
最新文档