利用quadprog函数可以求解二次规划问题,其语法格式为:
x = quadprog(H, f):返回向量x,使函数 1/2*x'*H*x + f'*x 最小化。H必须是正定的,解x=H\(-f)。
x = quadprog(H, f, A, b):返回向量x,使函数 1/2*x'*H*x + f'*x 最小化,其约束条件为 A*x <= b。
x = quadprog(H, f, A, b, Aeq, beq):仍然求解上面的问题,但添加了等式约束条件Aeq*x = beq。
x = quadprog(H, f, A, b, Aeq, beq, lb, ub):定义设计变量的下界lb和上界ub,使得lb <= x <= ub。
x = quadprog(H, f, A, b, Aeq, beq, lb, ub, x0):原理同上,并设置初值x0。
x = quadprog(H, f, A, b, Aeq, beq, lb, ub, x0, options):根据options指定的优化参数进行最小化。
[x, fval] = quadprog(...):返回解x处的目标函数值fval = 0.5*x'*H*x + f '*x。
[x, fval, exitflag, output] = quadprog(...):返回exitflag,描述计算的退出条件,以及包含优化信息的结构输出output。
[x, fval, exitflag, output, lambda] = quadprog(...): 返回解x处包含Lagrange乘子的lambda结构参数。