非线性规划--约束优化
约束优化也是求解f (x )的最小值,但x被限制在定义域内。MATLAB提供用于无约束规划的函数包括fminbnd、fmincon和fseminf。fminbnd函数用于求解单变量函数的最小值,即求f (x )最小值,且满足x 1 < x < x 2 。该函数的调用格式如下:
x = fminbnd(fun,x1,x2)
x = fminbnd(fun,x1,x2,options)
x = fminbnd(problem)
= fminbnd(...)
= fminbnd(...)
= fminbnd(...)其中,x1、x2分别为下、上限;其余参数可参考fminsearch函数。
例:求sin(x)在(0, 2pi)上的最小值。
在命令行窗口输入:
fun=@sin
= fminbnd(fun,0,2*pi)输出结果如下:fun = @sin
x = 4.7124
fval = -1.0000
exitflag = 1fmincon函数用于求解函数的最小值,即求f (x )最小值,且满足:
该函数的调用格式如下:
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 = fmincon(problem)
= fmincon(...)
= fmincon(...)
= fmincon(...)
= fmincon(...)
= fmincon(...)
= fmincon(...)其中,nonlcon用于提供非线性c(x)或ceq(x)。其余参数可参考linprog函数和fminunc函数。
页:
[1]