1、 MATLAB优化工具箱 实验指导书 执笔人:丁智平 审核人:吴吉平 湖南工业大学机械工程学院 “MATLAB优化工具箱”实验指导书 一、实验类型 验证性实验 二、实验目的 熟悉Matlab7.0软件的界面和基本功能,了解Matlab优化工具箱的常用算法; 使用Matlab优化工具箱的fminunc/fminsearch函数求解多变量非线性无约束优化问题; 使用Matlab优化工具箱的fmincon函数求解多变量非线性约束优化问题。 三、实验设备与软件 台式计算机,Matlab7.0软件。 四
2、实验内容 求解多变量非线性无约束优化问题和约束优化问题的最优解。 要求:(1)编写求解优化问题的M文件; (2)在命令窗口输入求解优化问题的命令,并得出计算结果。 五、实验方法与步骤 一、Matlab优化工具箱基础 1.开启计算机,启动Matlab7.0,进入Matlab软件的命令窗口界面,了解并熟悉工具栏的功能; 2. 编写标量优化问题的M文件; 3.在命令窗口输入求解标量优化问题命令,得出计算结果。 算题: 1) f=x2-10x+36 最优解:x*=5.0;f(x*)=11.0 2) f=x4-5x3+4x2-6x+60 最优解:x*=3.2796;
3、f(x*)=22.6590 3) f=(x+1)(x-2)2 最优解:x*=2.0;f(x*)=0 二、多变量无约束非线性最优化问题求解 1. 开启计算机,启动Matlab7.0,进入Matlab软件的命令窗口界面; 2. 编写无约束优化问题的M文件; 3. 在命令窗口输入求解无约束优化问题命令,得出计算结果。 算题: 1) f=4(x1-5) 2+( x2-6) 2 初始点:x0=[8,9]T;f(x0)=45 最优解:x*=[5,6]T;f(x*)=0 2) f=(x12+x2-11)2+( x1+ x22-7)2 初始点:x0=[1,1]T;f(x0)=106
4、 最优解:x*=[3,2]T;f(x*)=0 3) f=[1.5- x1(1- x2)]2+[2.25- x1(1- x2 2)]2+[2.625- x1(1- x23)]2 初始点:x0=[2,0.2]T;f(x0)=0.529 最优解:x*=[3,0.5]T;f(x*)=0 4) f=( x12+12 x2-1)2+(49 x1+49 x2+84 x1+2324 x2-681)2 初始点:x0=[1,1]T;f(x0)=3330769 最优解:x*=[0.336285,0.268126]T;f(x*)=5.431817 5) f=( x1+10 x2)2+5(x3- x4)2
5、 x2-2 x3)4+10(x1- x4)4 初始点:x0=[3,-1,0,1]T;f(x0)=215 最优解:x*=[0,0,0,0]T;f(x*)=0 三、多变量非线性约束最优化问题求解 1. 开启计算机,启动Matlab7.0,进入Matlab软件的命令窗口界面; 2. 编写有约束优化问题的M文件; 3. 在命令窗口输入求解有约束优化问题命令,得出计算结果。 算题: 1) f=( x1-2)2+( x2-1)2 g1= x12-x2≤0 g2= x1+x2-2≤0 初始点:x0=[3,3]T;f(x0)=5 最优解:x*=[1,1]T;f(x*)=1 2)
6、 f= x23[( x1-3)2-9]/27≤0 g1=x2-x1/≤0 g2=-x1+x2/≤0 g3=x1+x2/-6≤0 g4=-x1≤0 g5=-x2≤0 初始点:x0=[1,5]T;f(x0)=-13.3646 最优解:x*=[4.5,2.59808]T;f(x*)=-2.53125 3) f=1000- x12-2x2 2-x32-x1x2-x1x3 g1=-x1≤0 g2=-x2≤0 g3=-x3≤0 g4=x12+x22+x3 2-25=0 g5=8x1+14x2+7x3-56=0 初始点:x0=[2,2,2]T;f(x0)=976 最优解:x*=
7、[3.512,0.217,3.552]T;f(x*)=961.715 4) f=100(x2-x12)2+(1-x1)2+90(x4-x32)2+(1-x3)2+10[(x2-1)2+(x4-1)2]+19.8(x2-1)(x4-1) -10≤x1≤10 -10≤x2≤10 -10≤x3≤10 -10≤0x4≤10 初始点:x0=[-3,-1,-3,-1]T;f(x0)=19191.2 最优解:x*=[1,1,1,1]T;f(x*)=0 六、实验报告格式及要求 《机械优化设计》课程实验报告 学院: 系: 专业:
8、 年级: 姓名: 学号: 组_______ 实验时间: 指导教师签字: 成绩: Matlab优化工具箱 一、实验目的和要求 熟悉Matlab7.0软件的界面和基本功能,了解Matlab优化工具箱的常用算法; 使用Matlab优化工具箱的fminunc/fminsearch函数求解多变量非线性无约束优化问题; 使用Matlab优化工具箱的fminc
9、on函数求解多变量非线性约束优化问题。 二、实验设备和软件 台式计算机,Matlab7.0软件。 三、实验内容 求解下列优化问题的最优解。要求:(1)编写求解优化问题的M文件,(2)在命令窗口输入求解优化问题的命令,并得出计算结果。 1、标量优化问题 1) f=x2-10x+36 2) f=x4-5x3+4x2-6x+60 3) f=(x+1)(x-2)2 2、多变量非线性无约束优化问题 1) f=4(x1-5) 2+( x2-6) 2 初始点:x0=[8,9]T; 2) f=(x12+x2-11)2+( x1+ x22-7)2 初始点:x0=[1,1
10、]T; 3) f=[1.5- x1(1- x2)]2+[2.25- x1(1- x2 2)]2+[2.625- x1(1- x23)]2 初始点:x0=[2,0.2]T; 4) f=( x12+12 x2-1)2+(49 x1+49 x2+84 x1+2324 x2-681)2 初始点:x0=[1,1]T; 5) f=( x1+10 x2)2+5(x3- x4)2+( x2-2 x3)4+10(x1- x4)4 初始点:x0=[3,-1,0,1]T; 3、多变量非线性约束优化问题 1) f=( x1-2)2+( x2-1)2 g1= x12-x2≤0 g2= x1+x2-2
11、≤0 初始点:x0=[3,3]T; 2) f= x23[( x1-3)2-9]/27≤0 g1=x2-x1/≤0 g2=-x1+x2/≤0 g3=x1+x2/-6≤0 g4=-x1≤0 g5=-x2≤0 初始点:x0=[1,5]T; 3) f=1000- x12-2x2 2-x32-x1x2-x1x3 g1=-x1≤0 g2=-x2≤0 g3=-x3≤0 g4=x12+x22+x3 2-25=0 g5=8x1+14x2+7x3-56=0 初始点:x0=[2,2,2]T 4) f=100(x2-x12)2+(1-x1)2+90(x4-x32)2+(1-x3)2+1
12、0[(x2-1)2+(x4-1)2]+19.8(x2-1)(x4-1) -10≤x1≤10 -10≤x2≤10 -10≤x3≤10 -10≤0x4≤10 初始点:x0=[-3,-1,-3,-1]T; 四、M文件、在命令窗口输入的求解命令清单及计算结果记录 五、质疑和建议 执笔人:丁智平 2007年8月5日 审核人:吴吉平 2007年8月13日 批准人:胡成武 2007年8月21日 目标函数的M文件
13、 sjlxfun.m pp249一维搜索方法习题 1.1) function f =sjlxfun(x) f=x^2-10*x+36 1.2) function f =sjlxfun(x) f=x^4-5*x^3+4*x^2-6*x+60 1.3) function f =sjlxfun(x) f=(x+1)*(x-2)^2 pp249无约束优化方法习题 2.1) function f =sjlxfun(x) f=4*(x(1)-5)^2+(x(2)-6)^2 2.2) function f =sjlxfun(x) f=(x(1)^2+x(2)-11)^2
14、x(1)+x(2)^2-7)^2 2.3) function f =sjlxfun(x) f=(1.5-x(1)*(1-x(2)))^2+(2.25-x(1)*(1-x(2)^2))^2+(2.625-x(1)*(1-x(2)^3))^2 % 2.4) function f =sjlxfun(x) f=(x(1)^2+12*x(2)-1)^2+(49*x(1)+49*x(2)+84*x(1)+2324*x(2)-681)^2 2.5) function f =sjlxfun(x) f=(x(1)+10*x(2))^2+5*(x(3)-x(4))^2+(x(2)-2*
15、x(3))^4+10*(x(1)-x(4))^4 pp250约束优化方法习题 3.1) function f =sjlxfun(x) f=(x(1)-2)^2+(x(2)-1)^2 3.2) function f =sjlxfun(x) f=x(2)^3*((x(1)-3)^2-9)/27/sqrt(3) 3.3) function f =sjlxfun(x) f=1000-x(1)^2-2*x(2)^2-x(3)^2-x(1)*x(2)-x(1)*x(3) 3.4) function f =sjlxfun(x) f=100*(x(2)-x(1)^2)^2+(1-
16、x(1))^2+90*(x(4)-x(3)^2)^2+(1-x(3))^2+10*((x(2)-1)^2+(x(4)-1)^2)+19.8*(x(2)-1)*(x(4)-1) 约束条件的M文件: sjlxcon.m 3.1) function [c,ceq] =sjlxcon(x) c = [x(1)^2-x(2); x(1)+x(2)-2]; ceq = [ ]; 3.2) function [c,ceq] =sjlxcon(x) c=[x(2)-x(1)/sqrt(3); -x(1)+x(2)/sqrt(3); x(1)+x(2)/sqrt(3)-
17、6; -x(1); -x(2)]; ceq = [ ]; 3.3) function [c,ceq] =sjlxcon(x) c=[-x(1); -x(2); -x(3)] ceq = [x(1)^2+x(2)^2+x(3)^2-25; 8*x(1)+14*x(2)+7*x(3)-56]; 3.4) function [c,ceq] =sjlxcon(x) c=[x(1)-10; -x(1)-10; x(2)-10; -x(2)-10; x(3)-10; -x(3)-10; x(4)-10; -x(4)-10]; ceq = [ ];
18、 窗口输入的求解命令 pp249一维搜索习题 1.1),1.2),1.3) options = optimset('LargeScale','off'); [x,fval] =fminbnd(@sjlxfun,0,10,options) pp249无约束优化习题 2.1),2.2),2.3) x0=[1,1]; options = optimset('LargeScale','off'); [x,fval] = fminunc(@sjlxfun,x0,options) 2.4) x0=[1,1]; options = optimset('LargeScale','
19、off'); [x,fval] = fminsearch(@sjlxfun,x0,options) 2.5) x0=[3,-1,0,1] options = optimset('LargeScale','off'); [x,fval] = fminsearch(@sjlxfun,x0,options) pp250约束优化习题 3.1),3.2) x0=[1,5]; options = optimset('LargeScale','off'); [x,fval]=fmincon(@sjlxfun,x0,[],[],[],[],[],[],@sjlxcon,options) 3.3) x0=[2,2,2] options = optimset('LargeScale','off'); [x,fval]=fmincon(@sjlxfun,x0,[],[],[],[],[],[],@sjlxcon,options) 3.4) x0=[-3,-1,-3,-1] options = optimset('LargeScale','off'); [x,fval]=fmincon(@sjlxfun,x0,[],[],[],[],[],[],@sjlxcon,options)






