# Can we minimize a scalar like x'Ay?

#1

Why do I get error if I try to minimize a function of the form x’Ay where A is data matrix and x and y are some variable that I want to minimize. The actual code has many other function in minimization and many constraints. I ma just giving the function where I get complain. The complain is:

The second argument must be positive or negative semidefinite.

Error in * (line 261)
[ z2, success ] = quad_form( xx, P, Q, R );

Any suggestion would be appreciated.

(Mark L. Stone) #2

Please read Why isn't CVX accepting my model? READ THIS FIRST! and the book previously recommended to you.

Consider the special case of 1 dimension. Then your function is `a*x*y` . This is neither convex nor concave as a function of `x` and `y`, unless `a = 0`. You can see that by evaluating its Hessian. Things don’t get any better as the dimension is increased.

#3

Would you please comment if I can convert it to convex by log transformation? I could not do it, but I have been told that I can like we do in geometric programming? Would you please help?

(Mark L. Stone) #4

That trick only works in one dimension. I.e.,`log(x*A*y)` us concave if `x` and `y` are scalars and `A` is a positive (definite) scalar.

However, in higher dimensions,`log(x'*A*y)` is indefinite, i.e., neither convex nor concave.

#5

The expression x’Ay can be expressed as (sum over k ) c_k x1^a1kx2^a2k…
For example [x1,x2]
[C1 C2;C3 C4]*[x3 x4]=C1x1x3+C3x2x3+C32x1x4+C4x2x4 . Here as you see one can express the function in posynomial form with a’s are either 0 or 1. Since I can write the x’Ay as posynomial form why I cannot convert it to convex form. Please help.

(Mark L. Stone) #6

I don’t know what you’re doing. My previous reply stands. If you’re doing geometric programming, then follow CVX’s GP rules as documented at http://cvxr.com/cvx/doc/gp.html .