This paper addresses a method for quadratic programming with non-negative constraints. We know there are serveral basic techniques dealing with non-negative constraints: one is use the logarithm and the gradient method would becoeme a multiplicative update step, which is usually referred to as EG.
In this paper, the following optimization problem,
minimize F(x) = xTA x /2 + bT x subject to x >= 0
is explored. The proposed updating rule is simple: let A = A+ - A-, where A+ and A- are the positive elements and negative elements of A and let ai = (A+ x)i, ci = (A-x)i. The updating scale factor resembles a root of a quadratic algebraic equation:xi <- xi (-bi + sqrt(bi2 + 4 ai ci)) / (2ai)
The rest is the proof.Here I want to mention several easy parts about the algorithm: the gradient of the objective function is ai + bi - ci and when it's positive the update rule will decrease the objective function and when it's negative the update rule will increase the objective function; the fixed point analysis shows that the condition coincides with KKT condition.
There are several application of this optimization technique, e.g. in the dual problem of SVM. But it seems that specific algorithms, such as SMO will do better than this multiplicative update rule. So maybe we have to check the convergence rate and do some experiments for comparison.

