《实验第五讲优化》由会员分享,可在线阅读,更多相关《实验第五讲优化(25页珍藏版)》请在金锄头文库上搜索。
1、数学实验五 MATLAB优化工具箱,线性规划 非线性规划 最小二乘意义下的最优 方程求解 整数规划,0-1规划以及混合优化问题(BNBGUI),线性规划,基本算法:单纯形方法,x=linprog(f,A,b,VLB,VUB,x0),线性规划 (linear programming),(注:同lp函数,obsolete),非线性规划,算法: 直接搜索类方法 梯度类方法 高阶类方法,x=quadprog(H,f,A,b,VLB,VUB) (注:同qp函数,obsolete),求二次规划问题 (Quadratic Programming),Fminbnd :无约束条件单变量优化问题 Scalar b
2、ounded nonlinear function minimization.,x = fminbnd(fun,x1,x2,options,P1,P2, .) function y = f(x) y = x.3-2*x-5; fun.m x = fminbnd(f, 0, 2) x = 0.8165 (注:同fmin函数,obsolete),Fminsearch : 无约束条件非线性多变量优化问题 x = fminsearch(fun,x0,options,P1,P2, .),例:求多元函数的最小值 function f = banana(x) f = 100*(x(2)-x(1)2)2+(1
3、-x(1)2; banana.m x,out =fminsearch(banana,-1.2, 1);,(注:同 fmins函数,obsolete),求无约束多变量极值的其它函数,FMINU(FUN,X0,OPTIONS,GRADFUN) Matlab5.3以前版本(obsolete) FMINUNC (FUN,X0,OPTIONS,GRADFUN) Matlab5.3以后版本(取代FMINU),解带约束线性和非线性优化问题,min F(X) X S T: A*X = B (不等式约束) Aeq*X = Beq (等式约束)(线性约束) C(X) = 0 (不等式约束) Ceq(X) = 0
4、(等式约束) (非线性约束) LB = X = UB,Fmincon函数,X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,UNLCON) 其中 C, Ceq = feval(NONLCON, X) ( 同constr函数,obsolete),最小二乘意义下的最优问题,算法: 迭代算法 Gauss-Newton Levenberg-Marquardt,解非线性最小二乘问题 (solve non-linear least square problems),x= LSQNONLIN (fun,x0) x=LSQNONLIN (fun,x0,options) 其中,fun用来描述
5、,求解问题,注:同leastsq, obsolete,例: 求解问题: f1(x)=0 fn(x)=0 x= lsqnonlin(fun,x0),Fun.m Function y=fun(x) y(1)=f1(x) y(n)=fn(x),x=lsqnonneg(A,b) 注:同nnls, obsolete,非负最小二乘问题 (Non-negative least-squares),x=lsqlin (A,b,C,d,VLB,VUB,x0) 注:同conls,obsolete,带约束的线性最小二乘问题 (Constrained linear least squares),其中 fun,xdata
6、,ydata为已知的函数和数据 且FUN(X,XDATA)由fun定义,求非线性的最小二乘拟合问题 (Solve non-linear least squares Problems),fminimax 带约束的最小最大优化问题,基本格式 x = fminimax(fun,x0) x = fminimax(fun,x0,A,b) x = fminimax(fun,x0,A,b,Aeq,beq) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub) x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fminimax(fun
7、,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) x =fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,.) x,fval = fminimax(.) x,fval,maxfval = fminimax(.) x,fval,maxfval,exitflag = fminimax(.) x,fval,maxfval,exitflag,output = fminimax(.) x,fval,maxfval,exitflag,output,lambda = fminimax(.),function f = f
8、un(x) fun.m f(1)= 2*x(1)2+x(2)2-48*x(1)-40*x(2)+304; f(2)= -x(1)2 - 3*x(2)2; f(3)= x(1) + 3*x(2) -18; f(4)= -x(1)- x(2); f(5)= x(1) + x(2) - 8;,MinMax,x,f,方程求解,fzero x = fzero(fun,x0) x =fzero(fun,x0,options) x =fzero(fun,x0,options,P1,P2,.),求解 function y = f(x) y = x.3-2*x-5; z = fzero(f,2),=0,Fsolve(用最小二乘方法求非线性方程解) x = fsolve(fun,x0) x =fsolve(fun,x0,options) x =fsolve(fun,x0,options,P1,P2,.),如求x使得满足 function y = f(x) y =x*x*x-1 2;3 4; z = fsolve(f,1 1;1 1),Ps文档,请打开Ps或word文档,