资源预览内容
第1页 / 共56页
第2页 / 共56页
第3页 / 共56页
第4页 / 共56页
第5页 / 共56页
第6页 / 共56页
第7页 / 共56页
第8页 / 共56页
第9页 / 共56页
第10页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第9章 基于MATLAB优化工具箱的优化计算,9.1 MATLAB优化工具箱,一、常用的优化功能函数求解线性规划问题的主要函数是linprog。求解二次规划问题的主要函数是quadprog。求解无约束非线性规划问题的主要函数是fminbnd、fminunc和fminsearch。求解约束非线性规划问题的主要函数是fgoalattain和fminimax。,二、一般步骤,建立目标函数文件,针对具体工程问题建立优化设计的数学模型,不等式约束条件表示成g(X)0的形式,建立调用优化工具函数的命令文件,文件内容:必须的输入参数、描述标函数表达式等存储:以自定义的目标函数文件名存储在文件夹中,建立约束函数文件,文件内容:必须的输入参数、约束函数表达式等存储:以自定义的约束函数文件名存储在文件夹中,将优化设计的命令文件复制到MATLAB命令窗口中进行运算求解。,分析优化设计的数学模型,选择适用的优化工具函数文件内容:初始点,设计变量的边界约束条件, 运算结果输出等内容存储:以自定义的命令文件名存储于文件夹中。,9.2 线性规划问题,一、线性规划数学模型,1.主要应用对象:(1)在有限的资源条件下完成最多的任务;(2)如何统筹任务以使用最少资源。2.数学模型形式: min f TX s.t. AXb (线性不等式约束条件) AeqX=beq (线性等式约束条件) lb X ub (边界约束条件),约束条件,决策变量,目标函数,非负数,线性,3.MATLAB中函数调用格式 xopt, fopt=linprog( f, A, b, Aeq, beq, lb, ub, x0, options),最优解,最优值,目标函数各维变量系数向量,初始点,可选项,二、例题,生产规划问题:某厂利用a,b,c三种原料生产A,B,C三种产品,已知生产每种产品在消耗原料方面的各项指标和单位产品的利润,以及可利用的数量,试制定适当的生产规划使得该工厂的总利润最大。,x1,x2,x3,2x1,4x2,3x3,3x1,4x2,2x3,2x1,x1,x2,3x2,2x3,2x3,+,+,+,+,+,+,+,+,3.确定约束条件:,X=x1,x2,x3T,4.编制线性规划计算的M文件f= 2, 4, 3A=3,4,2;2,1,2;1,3,2;b=600;400;800;Aeq=;beq=;lb=zeros(3,1);xopt,fopt=linprog(f,A,b,Aeq,beq,lb),二、例题,解: 1.确定决策变量:,max2x1+4x2+3x3,3x1+4x2+2x3600,2x1+x2+2x3400,x1+3x2+2x3800,设生产A、B、C三种产品的数量分别是x1,x2,x3,决策变量:,根据三种单位产品的利润情况,按照实现总的利润最大化,建立关于决策变量的函数:,2.建立目标函数:,根据三种资料数量限制,建立三个线性不等式约束条件,5.M文件运行结果:Optimization terminated successfully.xopt =0.0000 66.6667 166.6667fopt=-766.6667,x1,x2,x30,xopt, fopt=linprog( f, A, b, Aeq, beq, lb, ub, x0, options),-,-,-,9.3 二次规划问题,1.研究意义:(1)最简单的非线性规划问题;(2)求解方法比较成熟。2.数学模型形式: s.t. AXb (线性不等式约束条件) AeqX=beq (线性等式约束条件) lb X ub (边界约束条件),一、二次规划问题数学模型,约束条件,决策变量,目标函数,二次函数,3.MATLAB中函数调用格式 xopt, fopt=quadprog(H,C, A, b, Aeq, beq, lb, ub, x0, options),最优解,最优值,目标函数的海赛矩阵,初始点,可选项,目标函数的一次项系数向量,结果xopt=2.571,1.143,0.000fopt=-16.4898,二、例题,求解约束优化问题,s.t.,解:(1)将目标函数写成二次函数的形式,,其中:,xopt, fopt=quadprog( H, C, A, b, Aeq, beq, lb, ub, x0, options),(2)编写求解二次规划的M文件:H=4,-2,0;-2,4,0;0,0,2;C=0,0,1;A=1,3,2;b=6;,Aeq=2,-1,1;beq=4;lb=zeros(3,1);,xopt,fopt=quadprig(H,C,A,b,Aeq,beq,lb),9.4 无约束非线性规划问题,无约束非线性规划问题的MATLAB函数有,fminbnd,要求目标函数为连续函数,只求解单变量问题,fminunc,可求解单变量和多变量问题,适用于简单优化问题,可求解复杂优化问题,fminsearch,1.使用格式: xopt,fopt=fminbnd(fun,x1,x2,options),9.4.1函数fminbnd,设置优化选项参数,迭代搜索区间,目标函数,返回目标函数的最优值,返回目标函数的最优解,2.例题: 求解一维无约束优化问题f(x)=(x3+cosx+xlogx/ex) 在区间0,1中的极小值。解:(1)编制求解优化问题的M文件。 %求解一维优化问题 fun=inline(x3+cos(x)+x*log(x)/exp(x),x);%目标函数 x1=0;x2=1;%搜索区间 xopt,fopt=fminbnd(fun,x1,x2) (2)编制一维函数图形的M文件。 ezplot(fun,0,10) title(x3+cosx+xlogx)/ex) grid on,9.4.1函数fminbnd,运行结果:xopt = 0.5223fopt = 0.3974,1.使用格式: xopt,fopt=fminsearch(fun,x0,options),9.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),9.4.2函数fminsearch,运行结果:xopt = 1.0000 2.0000fopt = 4.0000,1.使用格式: x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options,P1,P2),9.4.3函数fminunc,设置优化选项参数,初始点,调用目标函数的函数文件名,目标函数在最优解的海色矩阵,返回目标函数在最优解的梯度,优化算法信息的一个数据结构,返回算法的终止标志,返回目标函数的最优值,返回目标函数的最优解,附加参数,管道截面积:,其中设计变量:,9.4.3函数fminunc,2.例题: 已知梯形截面管道的参数是:底边长度c,高度h,面积A=64516mm2,斜边与底边夹角为。管道内液体的流速与管道截面的周长s的倒数成比例关系。试按照使液体流速最大确定该管道的参数。解:(1)建立优化设计数学模型 管道截面周长,min,x1,x2,f(X),目标函数的文件(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); %定义目标函数,9.4.3函数fminunc,2.例题:解:(1)建立优化设计数学模型 (2)编写求解无约束非线性优化问题的M文件,x,fval,exitflag,output,grad,hessian=fminbnd(fun,x0,options,P1,P2),求最优化解时的命令程序:x0=25,45; %初始点x,Fmin=fminunc(sc_wysyh,x0); %求优语句fprintf(1,截面高度h x(1)=%3.4fmmn,x(1)fprintf(1,斜边夹角 x(2)=%3.4f度n,x(2)fprintf(1,截面周长s f=%3.4fmmn,Fmin),计算结果截面高度h x(1)=192.9958mm斜边夹角 x(2)=60.0005度截面周长s f=668.5656mm,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/(。),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号