x=qp(H,f,A,b,vlb,vub) (vlb≤x≤vub)
x=qp(H,f,A,b,vlb,vub,x0) (x0为初值)
x= qp(H,f,A,b,vlb,vub,x0,n) (前n个等式约束)
[x,lambda]=qp(H,f,A,b)
例 求解如下二次优化问题
h=[1 -1;-1 2];
c=[-2 -6];
a=[1 1;-1 2;2 1];
b=[2 2 3];
vlb=[0 0];
vub=[]
[x,lam]=qp(h,c,a,b,vlb,vub)
3 非线性无约束优化问题
函数 fmin 单变量的最小函数值
调用格式
x=fmin(‘f’,x1,x2) (f 为目标函数. x1<x<x2)
x=fmin(‘f’,x1,x2,options)
(options 为控制参数,
若options(1)为负值,则显示中间计算过程,默认值为options(1)=0,
若options(2)为结果x的误差范围,默认值为1.e-4
若options(14)为函数求值的最大次数,默认值为options(14)=500)
x=fmin(‘f’,x1,x2,options,p1,p2) (p1,p2 为输入到目标函数的自变量值)
[x,options]=fmin() (返回options(10)中步数的计算值)
例 计算函数式
在(0,1)范围内的最小值点
fmin(‘(x^3 cos(x) x*log(x))/exp(x)’,0,1)
函数 fmins 多变量最小函数值
调用格式
x=fmins(‘f’,x0)
x=fmins(‘f’,x0,options)
x=fmins(‘f’,x0,options,[],p1,p2)
注 fmins 使用nelder-mead 型简单搜寻方法
例 求
的最小值点/
fmins(‘2*x(1)^3 4*x(1)*x(2)^3-10x(1)*x(2) x(2)^2’,[0,0])
函数 fminu 多变量函数最小值时的变量值
调用格式
x=fminu(‘fun’,x0) (fun为目标函数,x0为初值)
x=fminu(‘fun’,x0,options)
x=fminu(‘fun’,x0,options,’gradfun’) (gradfun为参数函数)
x=fminu(‘fun’,x0,options,’gradfun’,p1,p2)
[x,options]=fminu(‘fun’,x0) (以最优化方法返回所用参数值)
例 求函数