《优化工具箱》PPT课件.ppt
Matlab 优化工具箱,李 楠苏州大学 数学科学学院,Outline,简介常见问题及其解法无约束函数极值非线性规划二进制整数规划图形化工具箱的使用,线性规划二次规划,数学建模&优化,现实世界中,很多问题可以形式化优化问题,3,2023/7/9,优化工具箱,实际问题,数学问题,数学解,抽象形式化,问题求解,反馈(物理意义),目标函数,约束,Matlab优化工具箱提供了一批求解优化问题的方法,Outline,简介常见问题及其解法无约束函数极值非线性规划二进制整数规划图形化工具箱的使用,线性规划二次规划,无约束函数极值,5,标准形式,2023/7/9,一元函数的无约束优化问题,使用函数 fminbnd,常用格式,x=fminbnd(fun,x1,x2)x=fminbnd(fun,x1,x2,options)x,fval=fminbnd()x,fval,exitflag=fminbnd()x,fval,exitflag,output=fminbnd(),一元函数极值问题,6,2023/7/9,例:求函数 在区间(0,8)中的最小值和最大值,及其对应x的值。,求解过程:,1.建立m文件,2.调用函数,求最大值只需要将函数乘以-1,然后取最小值即可。,fplot(f1,0,8),作业1,7,对边长为1m的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪使水槽的容积最大?最大容积为多少?,2023/7/9,非约束多元函数极值问题,8,问题:,2023/7/9,x为向量,解法:,使用函数 fminunc,常用格式,x=fminunc(fun,x0)x=fminunc(fun,x0,options)x,fval=fminunc(.)x,fval,exitflag=fminunc(.)x,fval,exitflag,output=fminunc(.),其中,x0为起始点,非约束多元函数极值问题:例子,9,2023/7/9,例:求函数 的最小值,及其对应x的值。,1.建立m文件,2.调用函数,约束函数极值问题,10,2023/7/9,问题:,解法:,使用函数 fmincon,常用格式,非线性约束,线性约束,区间约束,x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,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,fval=fmincon(.)x,fval,exitflag=fmincon(.)x,fval,exitflag,output=fmincon(.),约束函数极值问题:例子,11,2013/5/4,例:求函数 在约束 下的最小值,及其对应x的值。,建立目标函数的文件 objfun.m(略)建立非线性约束的m文件调用,fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon),如果增加边界约束 x1=0,x2=0,如何求解?,fmincon,作业2,12,某厂要用铁板做成一个体积为1立方米的有盖长方体水箱.问当长、宽、高各取怎样的尺寸时,才能使用料最省。,2023/7/9,线性规划,13,标准形式,2023/7/9,解法:,使用函数 linprog,常用格式,x=linprog(f,A,b)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(.),线性规划:例子,14,2023/7/9,f=13 9 10 11 12 8;A=0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3;b=800;900;Aeq=1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1;beq=400 600 500;lb=zeros(6,1);ub=;,x,fval=linprog(f,A,b,Aeq,beq,lb,ub),4,5,6,作业3,15,某车间有甲、乙两台机床,可用于加工三种工件.假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400、600和500,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费如下表.问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?,2023/7/9,0-1整数规划,16,标准形式,2023/7/9,x 取值 0或1,解法:,使用函数 bintprog,常用格式,x=bintprog(f)x=bintprog(f,A,b)x=bintprog(f,A,b,Aeq,beq)x=bintprog(f,A,b,Aeq,beq,x0)x=bintprog(f,A,b,Aeq,Beq,x0,options)x,fval=bintprog(.)x,fval,exitflag=bintprog(.)x,fval,exitflag,output=bintprog(.),0-1整数规划:例子,17,假设现有容量10kg的背包,另外有3个物品,分别为a1,a2,a3。物品a1重量为3kg,价值为4;物品a2重量为4kg,价值为5;物品a3重量为5kg,价值为6。将哪些物品放入背包可使得背包中的总价值最大?,2023/7/9,f=-4-5-6;A=3 4 5;b=10;Aeq=;beq=;x,z=bintprog(f,A,b,Aeq,beq),二次规划,18,标准形式,2023/7/9,解法:,使用函数 quadprog,常用格式,x=quadprog(H,c)x=quadprog(H,c,A,b)x=quadprog(H,c,A,b,Aeq,beq)x=quadprog(H,c,A,b,Aeq,beq,lb,ub)x=quadprog(H,c,A,b,Aeq,beq,lb,ub,x0)x=quadprog(H,c,A,b,Aeq,beq,lb,ub,x0,options)x,fval=quadprog(H,f,.)x,fval,exitflag=quadprog(H,f,.)x,fval,exitflag,output=quadprog(H,f,.),二次规划:例子,19,2023/7/9,改写为标准形式,H=2-2;-2 4;c=-2;-6;A=1 1;-1 2;b=2;2;Aeq=;beq=;lb=0;0;ub=;x,z=quadprog(H,c,A,b,Aeq,beq,lb,ub),作业4,20,求解,2023/7/9,Outline,简介常见问题及其解法无约束函数极值非线性规划二进制整数规划图形化工具箱的使用,线性规划二次规划,图形化工具箱,22,2023/7/9,Matlab提供了方便易用的GUI优化工具箱optimtool,End,23,请将作业程序打包后,作为附件发送至邮件标题:建模作业-姓名-年级院系(例如:建模作业-张三-11数学),2023/7/9,