2、ne('-(3-2*x)^2*x');x=fminbnd(f,0,1.5)方法3:x=fminbnd(@(x)-(3-2*x)^2*x,0,1.5)方法4:先形成一个函数文件functionf=fun(x)f=-(3-2*x)^2*x;然后运行下两句中的任一句x=fminbnd('fun',0,1.5)x=fminbnd(@fun,0,1.5)若需输出最优点处的目标函数值f,则将上述语句的左边改为[x,f],如:[x,f]=fminbnd('-(3-2*x)^2*x',0,1.5)其它用法:[X,fval,exitflag,output]=fminbnd(fun,x1,
3、x2)其中:fun为目标函数,x1,x2为变量的边界约束,即x1≤x≤x2,X为返回的满足fun取得最小值的x的值,而fval则为此时的目标函数值。exitflag>0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag<0表示计算不收敛,返回值output有3个分量,其中iterations是优化过程中迭代次数,funcCount是代入函数值的次数,algorithm是优化所采用的算法。例:clearfun='(x^5+x^3+x^2-1)/(exp(x^2)+sin(-x))'ezplot(fun,[-2,2])[X,fval,exitfla
4、g,output]=fminbnd(fun,-2,2)结果为:X=0.2176fval=-1.1312exitflag=1output=iterations:13funcCount:13algorithm:'goldensectionsearch,parabolicinterpolation'1.无约束极小值优化工具箱函数fminunc,fminsearch以上两个函数均可求解无约束多元函数的最小值。调用格式:x=fminunc(fun,X0)x=fminsearch(fun,X0)--------------以X0为初始迭代点,求使函数fun取得最小值的x[x,fva
5、l]=fminunc(fun,X0)[x,fval]=fminsearch(fun,X0)--------------以X0为初始迭代点,求得最优点x和最优值fval。fminsearch()采用单纯形法进行计算,适合处理阶次低但是间断点多的函数;fminunc()对于高阶连续的函数比较有效,该函数可以输出海塞矩阵。例1:求X0=[1,1]’[x,fval]=fminunc('3*x(1)^2+2*x(1)*x(2)+x(2)^2',X0)[x,fval]=fminsearch('3*x(1)^2+2*x(1)*x(2)+x(2)^2',[1,1]')例2:clearf
6、un='exp(x(1))*(2*x(1)^2+3*x(2)^2+2*x(1)*x(2)+3*x(2)+1)';x0=[0,0];options=optimset('largescale','off','display','iter','tolx',1e-8,'tolfun',1e-8);[x,fval,exitflag,output,grad,hessian]=fminunc(fun,x0,options)2.约束极小值优化工具箱函数fmincon对应数学模型:minF(X)subjectto:A*X<=B,Aeq*X=Beq(linearconstraints)C(
7、X)<=0,Ceq(X)=0(nonlinearconstraints)LB<=X<=UB调用格式:x=fmincon(fun,x0,A,b):给定初值x0,求解fun函数的最极值点x.。约束条件为线性约束A*x<=b。x0可以是标量、矢量或矩阵X=fmincon(FUN,X0,A,B,Aeq,Beq)同前一调用格式相比,约束条件中增加了等式约束Aeq*X=Beq.(若无不等式约束,取A=[]、B=[])X=fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB)若设计变量X有上下限UB、LB用此格式若X无取值限制,LB与UB为