《matlab求解非线性优化问题.ppt》由会员分享,可在线阅读,更多相关《matlab求解非线性优化问题.ppt(12页珍藏版)》请在三一文库上搜索。
1、,多元函数的无约束最小值问题,在Matlab中有2个经常使用的函数: 1、fminsearch 2、fminunc,注意: (1)在使用这两个函数时,必须首先用M文件的形式存储待求最值的函数,该函数需以向量函数的形式表达; ( 2)最大值问题需转化为最小值问题。,多元函数极值的求法,非线性优化问题的求法,使用格式: x,fval=fminsearch(f,x0) 输入参数:f: 目标函数;x0: 初始点(向量). 输出参数:x: 最优解;fval: 最优解对应的函数值. 例:fminsearch(f,1,2) 含义为:从点1,2开始 搜寻函数f 的最小值。,fminsearch,非线性无约束优
2、化问题,例:求函数 在x=1,y=2附近的最小值点。 解决步骤:1、建立M文件,保存函数f; M文件内容为: function f=fun(x) f=-(x(1)+x(2)+(x(1)2+x(2)2+1); 2、调用fminsearch函数求最值. 在命令窗口中,输入: x0=1,2; x,fval=fminsearch(fun,x0) 3、输出结果为: X = 0.5000 0.5000 fval =0.5000,非线性无约束优化问题,使用格式与fminsearch类似: x,fval= fminunc(f,x0) 其中f为待求最值的向量函数,x0为搜索过程开始时自变量的初始值。 例:fmi
3、nunc(f,1,2)含义为:从点1,2开始搜寻函数f的最小值。,fminunc,非线性无约束优化问题,Matlab默认的二次规划 用MATLAB软件求解,其输入格式如下: x,fval=quadprog(H,c,A,b); x,fval=quadprog(H,c,A,b,Aeq,beq); x,fval=quadprog(H,c,A,b,Aeq,beq,LB,UB); x,fval=quadprog(H,c,A,b,Aeq,beq,LB,UB,X0);,二次规划问题,7,例, 写成标准形式:,二次规划问题,8,H=2 -2; -2 4; c=-2 ;-6; A=1 1; -1 2; b=2;
4、2; Aeq=;beq=; VLB=0;0;VUB=; x,z=quadprog(H,c,A,b,Aeq,beq,VLB,VUB), 运算结果为:,x = 0.8000 1.2000 z = -7.2000, 输入命令:,二次规划问题,求解约束非线性优化问题 Matlab 求解约束非线性优化问题 fmincon 调用格式如下: x,fval = fmincon(fun,x0,A,b,Ae,be,lb,ub,nonlcon),约束非线性优化问题,x,fval =fmincon(fun,x0,A,b,Ae,be,lb,ub,nonlcon) 输入参数: fun 表示优化目标函数,x0 表示优化的初
5、始值 A,b 表示满足线性关系式 的系数矩阵和右端项 Ae,be 表示线性等式约束 的系数矩阵和右端项 lb,ub 表示取值范围 的上限和下限 nonlcon 表示需要参数满足的非线性关系式 和,11,例,1) 先建立 M 文件 fun3.m, 定义目标函数:,function f=fun3(x); f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);,2) 再建立 M 文件 mycon.m 定义非线性约束:,function c,ceq=mycon(x) c= 1.5+x(1)*x(2)-x(1)-x(2);-x(1)*x(2)-10; ceq=;,12,3) 主程序youh.m为:,x0=-1;1; A=;b=; Aeq=1 1;beq=0; vlb=;vub=; x,fval=fmincon(fun3,x0,A,b,Aeq,beq,vlb,vub,mycon),3. 运算结果为: x = -1.2247 1.2247 fval = 1.8951,
链接地址:https://www.31doc.com/p-3407148.html