matlab优化实例课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
g3 : x2 150
Lbound x U bound
x1 , x2 0
初始值
[ x, fval, exitflag, output , lamda ] linprog(c, A, b, Aeq, beq, LB,UB, x0, options ]
f [4,5]
1 1 200 1.25 0.75 x1 200 x 2 1 0 150
f=[-4,-5] A=[1,1;1.25,0.75;0,1] b=[200,200,150] LBnd=[0 0] x=linprog(f,A,b,[ ],[ ],LBnd,[ ])
理解
第二节 无约束线性优化
程序
[ x, fval, exitflag, output , lamda ] linprog(c, A, b, Aeq, beq, LB,UB, x0, options ]
1:找到最优解,优化成功 0:迭代次数已经达到最大,表示不能再继续寻找最优解x -2:可行解没有找到 -3: 问题没有定义边界 -4: NaN的存在导致算法没法进行 exitflag<0:表示优化失败 -5: 原始对偶问题没有可行解 -7: 算法搜索方向存在问题
第二节 无约束线性优化
[ x, fval, exitflag, output , lamda ] linprog(c, A, b, Aeq, beq, LB,UB, x0, options ]
Linspace
y= linspace(a,b,n) generates a row vector y of n points linearly spaced between and including a and b.
subplot(m,n,p)
or subplot(mnp) breaks the figure window into an mby-n matrix of small axes, selects the pth axes object for the current plot
Syntax(语法) [X,Y] = meshgrid(x,y)
[X,Y] = meshgrid(x)
[X,Y,Z] = meshgrid(x,y,z)
Examples [X,Y] = meshgrid(1:3,10:14)
[X,Y] = meshgrid(-2:.2:2, -2:.2:2); Z = X .* exp(-X.^2 - Y.^2); surf(X,Y,Z)
2)fminunc函数:用于求解单变量及多变量函数的最小 值,fminunc函数是基于梯度的最优化算法。 函数要求目标函数必须连续。函数有可能得到 局部最优解。
[x,fval,exitflag,output,lambda,grad,hessian] =fminunc(‘fun’,X0,options )
第二节 无约束线性优化
fminunc函数的说明 ①函数为无约束优化提供了大、中型优化算法。 options中LargeScale控制。 ②函数的中型算法里面有4种算法。 options中HessUpdate控制 ③函数的中型算法步长一维搜索,有两种算法。 LineSearchType控制。
函 数
LargeScale=’on’ LargeScale=’off’ (默认值) HessUpdate=’bfgs’ (默认值) HessUpdate=’dfp’ HessUpdate=’steepdesc’ LineSearchType=’quadcubic’(缺省) LineSearchType=’cubicpoly’ 第二节 无约束线性优化
Surfc(x,y,z)
3-D shaded surface plot
左图是PE的等高线图,图上 标出了每条等高线的数值, 从图可可清楚地找到极小值/ 极大值的分布。
第一节 Matlab简介
右图是PE的三维图形,三维图形 下面是等高线图,图中也标出了 极小值/极大值所在点的近似位置, 在该点PE目标函数取得极小值/极 大值。
contour(x,y,z,v,’k’)
在数组v的元素指定的数值处绘制等高线图z,水平面的坐 标值为x,y,‘k’表示线色为黑色。
clabel
Contour plot elevation labels
axis([xmin xmax ymin ymax])
Axis scaling and appearance
第八章 练 习
1.MATLAB 的优化工具箱中可以用于求解多变量约束 优化问题的函数为 (fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 其语法格式中fun指 , nonlcon指 。
第八章 重点内容
1. 无约束线性优化函数有哪些? 2. 无约束非线性优化函数有哪些? 3. 单变量约束优化函数有哪些? 4. 多变量约束优化函数有哪些? 5. 多目标约束优化函数有哪些?
第二节 无约束线性优化
x ,x 0
Linprog函数主要解决以下问题: s.t.: min z cx g1 : x1 x2 200 s.t. Ax b g 2 :1.25 x1 0.75 x2 200
min f x1 , x2 4 x1 5 x2
Aeq x beq
X的最优值 f(X)的最优解 目标函数的函数文件名 为由optimset中定义的参数赋值 传递到 UserFuncti on的参数
执行结果为D=1.117in,fD=f(D)=1003$/年。
第三节 约束优化问题
例5:求解
1 min x x ( , )
第三节 约束优化问题
3.2 多变量约束线性优化
实折线是施加一载荷后 弹簧变形的情况 虚折线是施加载荷前弹 簧未变形的情况
第一节 Matlab简介
系统的势能相对于设计变量x1和x2值求最优值 由弹簧的弹性势能与拉力所作的功之差计算得出
E 1 k x 2 2
第一节 Matlab简介
程序
第五节 有关优化的一些论文
Meshgrid- Generate X and Y arrays for 3-D plots
第八章 基于Matlab的机械优化实例
结束
第一节 Matlab简介
优化问题可以由MATLAB的作图功能以图形方 式显示。如例1: 图中是两个弹簧组成的系统。在A点施加一载荷后系 统处于变形状态,经过一定时间后将停留在平衡状 态。要研究的是系统的 平衡状态,在图中实折 线具体指出了A点的位置 (x1,x2)。
第二节 无约束线性优化
第三节 约束优化问题 3.1、单目标单变量约束优化
例4 工厂的管道费用问题 若设计一化工厂,管道费用(包括配件及抽灌费用)是需 要考虑的一项重要指标。假设设计一条 L 英尺长的管道,抽灌 量为Q g/m,目标是求出管道直径D(单位in),使其年度抽灌 费用最低。 考虑采用标准的碳钢泵,其年度抽灌费用可表示为:
第二节 无约束线性优化
[ x, fval, exitflag, output , lamda ] linprog(c, A, b, Aeq, beq, LB,UB, x0, options ]
输入宗量options:
largescale:是否用大型优化算法。 LagreScale, MediumScale,Simplex:linprog输入了x0, 即默认是用MediumScale,如果用LargeScale 和Simplex则不需要输入初始点。 diagnosyics:打印优化的诊断报告。 display:显示水平.取值为’off’时,不显示输出; 取值 为’iter’时,显示每次迭代的信息;取值为 ’final’时,显示最终结果.默认值为’final’. maxiter: 允许迭代的最大次数 simplex:使用单纯形算法 tolfun: 允许误差
f D 0.45L 0.245LD1.5 325 hp
8
0.5
61.6 hp
0.925
102
2.68 LQ3 9 LQ 1.92 10 其中, hp 4.4 10 5 D D 4.68
管道直径的变化范围要求: 0.25 D 6
管长和液体输送速度为常数,分别为1000英尺和20g/m时, 求管道直径为多少才使其费用最低。
第三节 约束优化问题
单变量约束优化是对分布于固定区间上的单变量目 标函数求最优解的一种方法。
min f ( x) s.Байду номын сангаас. a 1 x a2
x
Matlab命令为 [ xopt, fxopt] f min bnd(UserFuncti on, a1, a2, options , p1, p2,......)
输出宗量的[x, fval, exitflag, output, lambda] 理解: x —输出的最优解x Fval —当取最优解为x时的最优值 exitflag—判断算法停止的原因 Output —algorithm,cgiterations,iterations,message Lambda —lower,upper,ineqlin,eqlin 输出宗量exitflag:
描
使用大型算法 使用中型算法
述
拟牛顿法的BFGS公式 拟牛顿法的DFP公式 最速下降法 混合的二次和三次多项式插值 三次多项式插值
例3:求解弹簧稳定问题
运行结果x=[8.425,3.6331] , f=PE=-35.30507
第二节 无约束线性优化
运行结果x=[8.425,3.6331] , f=PE=-35.30507,与图形所 示的近似值相比,是一致的。
基于Matlab的机械优化实例
梁 医
南京理工大学机械工程学院
参考书目
1.MATLAB原理与工程应用(An Engineer’s Guide to MATLAB),Edward B. Magrad 等,电子工业出版社 2.MATLAB 遗传算法工具箱及其应用,雷英杰 等 西安 电子科大出版社
第一节 Matlab优化简介 第二节 无约束优化问题 无约束线性优化,无约束非线性优化 第三节 约束优化问题 单变量约束优化, 多变量线性约束优化,多变量非线性约束优化 多目标约束优化 第四节 遗传优化方法 第五节 《Finite Elements in Analysis and Design》和 《Mechanism and Machine Theory》有关优化 的一些论文
输出宗量的output: algorithm:采用的算法 cgiterations:设置变化梯度矩阵迭代次数 (只用于大型优化算法) iterations:迭代次数 message:退出的信息
输出宗量的lambda (最优解x处的Lagrange乘子): lower:lagrange乘子的下限 upper: lagrange乘子的上限 ineqlin:线性不等式 eqlin: 线性等式
第二节 无约束优化 2.1 无约束非线性优化
min f(x)
1)fminsearch函数:函数用于求解多变量函数的极小值, 而fminsearch是根据Nelder算法而编写的. 函数有可能找到局部最优解。
[x,fval,exitflag,output]=fminsearch(‘fun’,X0,options )
例2:有两产品A和B,需要在两个车间加工。 每件产品A在第一车间的处理时间为1小时,在第二车 间处理时间为1.25小时;每件产品B在第一车间的处理时 间为1小时,在第二车间的处理时间为0.75小时。 每个车间每月有200小时的时间可以利用,而且B产品 的市场需求量最大为150件,假定A产品和B产品的利润每 件分别为¥4和¥5。 min f x1 , x2 4 x1 5 x2 求出使生产商的利润最大 时A产品和B产品的生产量。 s.t.: g1 : x1 x2 200 x1——A产品的生产数量; g 2 :1.25 x1 0.75 x2 200 x2——B产品的生产数量 g3 : x2 150