求解argmax时用到二次规划,matlab中 quadprog使用很简单,但是在python中这一类资料却很少,网上给出的大部分答案都是,但是对各个变量的说明几乎没有,我带入自己的变量时总是报错
def quadprog_solve_qp(P, q, G=None, h=None, A=None, b=None): qp_G = .5 * (P + P.T) # make sure P is symmetric qp_a = -q if A is not None: qp_C = -numpy.vstack([A, G]).T qp_b = -numpy.hstack([b, h]) meq = A.shape[0] else: # no equality constraint qp_C = -G.T qp_b = -h meq = 0 return quadprog.solve_qp(qp_G, qp_a, qp_C, qp_b, meq)[0]
最后使用了另一个module qpsolvers解决了二次规划问题
1. 待解决的二次规划如下: