《MATLAB优化工具箱--线性规划-非线性规划.ppt》由会员分享,可在线阅读,更多相关《MATLAB优化工具箱--线性规划-非线性规划.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2 2例题建模例题建模w典型的优化问题典型的优化问题w三大要素:三大要素:目标:种植目标:种植A,B两种作物获得最大利润两种作物获得最大利润决策:安排种植决策:安排种植A,B两种作物各所少亩两种作物各所少亩约束:肥料限制;种植土地面积限制约束:肥料限制;种植土地面积限制w建立模型建立模型max 6x1+4x2s.t. 2x1+5x2 100100 4x1+2x2 1201203 3Matlab优化工具箱优化工具箱w线性规划:线性规划:linprogw非线性规划:非线性规划:fminbnd,fminsearch,fmincon数学实验7/3/20224 4uXlbXAbAXtsXfeqeqT.
2、.min求解下列形式的求解下列形式的线性规划线性规划模型:模型:Matlab求解线性规划模型函数linprog数学实验7/3/20225 5linprog 语法:x = linprog(f,A,b,Aeq,beq)x = linprog(f,A,b,Aeq,beq,lb,ub)x = linprog(f,A,b,Aeq,beq,lb,ub,x0)x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)x,fval = linprog(.)x,fval,exitflag = linprog(.)x,fval,exitflag,output = linprog(.)x
3、,fval,exitflag,output,lambda = linprog(.)6 6linprog输入参数说明:输入参数说明:f, A, b, Aeq, beqlb,ub 边界设置边界设置说明:说明:如果如果x(i)无边界,则无边界,则lb(i) = - -inf,ub(i) = inf 7 7输出参数说明:输出参数说明:x 决策变量取值决策变量取值fval 目标函数最优值目标函数最优值exitflag 0 成功找到最优解成功找到最优解 0 达到最大迭代次数也没有找到最优解达到最大迭代次数也没有找到最优解 0 该线性规划问题不可行或者该线性规划问题不可行或者linprog计计算失败算失败
4、linprog8 8例题的求解程序例题的求解程序模型:模型:max 6x1+4x2s.t. 2x1+5x2 100100 4x1+2x2 120120wMatlab求解程序:求解程序:A=2 5;4 2;b=100 120;f=-6 4;optx ,funvalue,exitflag=linprog(f,A,b,0 0,inf,inf)9 9程序运行结果程序运行结果输出:输出:Optimization terminated successfully.optx = 25.0000 10.0000funvalue = -190.0000exitflag = 11010解释得出实际问题的解解释得出实
5、际问题的解当分别种植当分别种植A、B两种作物为两种作物为25亩、亩、10亩时,亩时,预计共获得利润预计共获得利润190(百元)。(百元)。数学实验7/3/20221111fmincon函数求解形如下面的有约束非线性规划模型一般形式:0)(0)(. .)(minXcXcuXlbXAbAXtsXfeqeqeqMatlab求解有约束非线性最小化1.约束中可以有等式约束2.可以含线性、非线性约束均可数学实验7/3/20221212输入参数语法:x = fmincon(fun,x0,A,b)x = fmincon(fun,x0,A,b,Aeq,beq)x = fmincon(fun,x0,A,b,Aeq
6、,beq,lb,ub)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2, .)x,fval,exitflag,output,lambda=fmincon(fun,x0,.) 数学实验7/3/20221313输入参数的几点说明q模型中如果没有A,b,Aeq,beq,lb,ub的限制,则以空矩阵 作为q参数传入;qnonlcon:如果包含
7、非线性等式或不等式约束,则将这些函数 编写为一个编写为一个Matlab函数,函数,nonlcon就是定义这些函数的程序文件名;就是定义这些函数的程序文件名;不等式约束不等式约束 c(x)=0c(x)=0等式约束等式约束 ceq(x)=0ceq(x)=0.如果如果nonlcon=nonlcon=myconmycon ; ; 则则myfunmyfun.m.m定义如下定义如下function c,ceq = mycon(x) function c,ceq = mycon(x) c = .c = .% % 计算非线性不等式约束在点计算非线性不等式约束在点x x处的函数值处的函数值ceq = .ceq
8、= .%计算机非线性等式约束在点计算机非线性等式约束在点x x处的函数值处的函数值 1414fmincon示例示例w求解步骤求解步骤:(1)编写目标函数文件(这里文件名用)编写目标函数文件(这里文件名用myobjfun2.m)(2)编写约束条件函数文件()编写约束条件函数文件(mymodelcons.m)(3)编写调用)编写调用fmincon主程序(主程序(mymain2.m)3 , 2 , 1090021000. .432min32221321232221ixxxxxxxtsxxxi1515fmincon示例程序示例程序function r=myobjfun1(x)%目标函数值计算,并返回目
9、标函数值计算,并返回r=2*x(1)2+3*x(2)2+4*x(3)2;文件文件myobjfun2.mfunction C,CEQ=mymodelcons(x)C(1)=x(1)2+x(2)2-2*x(3)-900;%=0CEQ(1)=x(1)+x(2)+x(3)-1000;%=0文件文件mymodelcons.m1616fun=myobjfun2;%目标函数文件名字符串目标函数文件名字符串x0=0 0 1000;%初始点,注意满足等式约束初始点,注意满足等式约束%基本约束条件初始化基本约束条件初始化A=;b=;Aeq=;beq=;lb=0 0 0;ub=inf,inf,inf;nonlcon
10、=mymodelcons;%约束条件文件名约束条件文件名%调用调用fmincon求解求解x,fval,exitflag= fmincon(fun,x0,A,b,Aeq,beq,. lb,ub,nonlcon) 文件文件myobjfun2.m1717学习小结学习小结w最优化问题建模的关键是先要确定三要素,再转最优化问题建模的关键是先要确定三要素,再转化为数学表达式(数学模型)。化为数学表达式(数学模型)。w学习中既要初步掌握最优化问题的建模步骤,也学习中既要初步掌握最优化问题的建模步骤,也要善于运用要善于运用Matlab的优化工具箱求解优化模型。的优化工具箱求解优化模型。w有些模型可以采用多个有
11、些模型可以采用多个Matlab函数求解,可以比函数求解,可以比较结果,加深认识。较结果,加深认识。1818思考题思考题w一幢楼房的后面是一个很大的花园。在花园中紧一幢楼房的后面是一个很大的花园。在花园中紧靠着楼房建有一个温室,温室高靠着楼房建有一个温室,温室高10英尺,延伸进英尺,延伸进花园花园7英尺。清洁工要打扫温室上方的楼房的窗户。英尺。清洁工要打扫温室上方的楼房的窗户。他只有借助于梯子,一头放在花园中,一头靠在他只有借助于梯子,一头放在花园中,一头靠在楼房的墙上,攀援上去进行工作。他只有一架楼房的墙上,攀援上去进行工作。他只有一架20米长的梯子,你认为他能否成功?能满足要求的米长的梯子,你认为他能否成功?能满足要求的梯子的最小长度是多少?请就以上问题建立数学梯子的最小长度是多少?请就以上问题建立数学模型,并编程求解。模型,并编程求解。1919提示:提示: