优化问题的MATLAB求解

  • 格式:ppt
  • 大小:1.55 MB
  • 文档页数:35

下载文档原格式

  / 35
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最 优 解
1 T X HX C T X 2
最 优 值
赛数 目 矩的 标 阵海 函
数次 数 目 向项 的 标 量系 一 函
初 始 点
可 选 项
六、二次规划问题例题
2 2 2 求解约束优化问题 f (X) 2x1 2x2 x3 2x1x2 x3 s.t. g( X) x1 3x2 2x3 6 h( X) 2x1 x2 x3 4
x1
x2
十、函数fminunc
64516 2x1 2.例题: f (X) x 1ctgx 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)
计算结果 截面高度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…)
十、函数fminunc
2.例题: 解:(1)建立优化设计数学模型 (2)编写求解无约束非线性优化问题的M文件 (3)编写绘制一维函数图形的M文件
优化问题的 MATLAB求解
一、matlab优化工具箱中常用的功能函数

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

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

求解约束非线性规划问题的主要函数是 fgoalattain和fminimax。
建立调用优化工具 函数的命令文件
分析优化设计的数学模型,选择适用的优化工具函数 文件内容:初始点,设计变量的边界约束条件, 运算结果输出等内容 存储:以自定义的命令文件名存储于文件夹中。
将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解
线性规划问题
三、线性规划数学模型
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)编写求解二次规划的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]=quadprig(H,C,A,b,Aeq,beq,lb) b=[6]; [xopt, fopt]=quadprog( H, C, A, b, Aeq, beq, lb, ub, x0, options)
返回目标函数在最优解的梯度 优化算法信息的一个数据结构 返回算法的终止标志 返回目标函数的最优值
返回目标函数的最优解
十、函数fminunc
2.例题: 已知梯形截面管道的参数是:底边长度c,高度h,面积 A=64516mm2,斜边与底边夹角为θ。管道内液体的流速与管 道截面的周长s的倒数成比例关系。试按照使液体流速最大确 定该管道的参数。 解:(1)建立优化设计数学模型 θ h 2h 管道截面周长 s c c f(X) sin
最 优 解
最 优 值
数变 数 目 向量 各 标 量系 维 函
初 始 点
可 选 项
四、线性规划例题
生产规划问题:某厂利用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 x + +1 + 3 3x + 4 + 4x +
title('目标函数等值线') subplot(1,2,2); meshc(x1,x2,f); axis([100,300,30,120,600,1200]) title('目标函数网格曲面图')
控制参数options
序号
1
3
2
1
功能
输出形式
默认值及其含义
0,无中间结果 输出
说明
Options(1)=1,按照表格输出结果 Options(1)=-1,隐藏警告信息
二、一般步骤
针对实际问题建立优 化设计的数学模型
不等式约束条件表示成g(X)≥0的形式
建立目标函数文件
文件内容:必须的输入参数、描述标函数表达式等 存储:以自定义的目标函数文件名存储在文件夹中 文件内容:必须的输入参数、约束函数表达式等 存储:以自定义的约束函数文件名存储在文件夹中
建立约束函数文件
Fra Baidu bibliotek
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
设置优化选项参数 迭代搜索区间 目标函数 返回目标函数的最优值 返回目标函数的最优解
八、函数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)
2
3 4
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/(^{。})')
运行结果: xopt = 1.0000 2.0000 fopt = 4.0000
十、函数fminunc
附加参数
1.使用格式: [x,fval,exitflag,output,grad,hessian]=fminunc(@fun,x0,options,P1,P2…)
设置优化选项参数 初始点 调用目标函数的函数文件名 目标函数在最优解的海色矩阵
无约束非线性规划问题
七、无约束非线性规划问题的函数
fminbnd
只求解单变量问题 要求目标函数为连续函数
fminsearch
适用于简单优化问题 可求解单变量和多变量问题
fminunc
可求解复杂优化问题
八、函数fminbnd
1.使用格式: [xopt,fopt]=fminbnd(fun,x1,x2,options)
设置优化选项参数 初始点 目标函数 返回目标函数的最优值 返回目标函数的最优解
九、函数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.m x0=[0,0]; %初始点 [xopt,fopt]=fminsearch(@search,x0)
运行结果: xopt = 0.5223 fopt = 0.3974
(2)编制一维函数图形的M文件。 ezplot(fun,[0,10]) title('(x^3+cosx+xlogx)/e^x') grid on
九、函数fminsearch
1.使用格式: [xopt,fopt]=fminsearch(fun,x0,options)
二次规划问题
五、二次规划问题数学模型
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)
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 2x1+x2+2x3≤400 Aeq=[];beq=[]; 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)
x1 2 h A X ch 其中设计变量: 管道截面积: xhctg 64516 2
64516 c hctg h
64516 2h 64516 2 x1 hctg x1ctgx2 min s h sin x1 sin x 2