Error(*): Only scalar quadratic forms can be specified in CVX

Dear all,

I am trying to solve the following optimization problem:

cvx_begin
variable theta(6,2)
minimize( (1/2) * x * theta * A * Q * A’ * theta’ * x’ - z * A’ * theta’ * x’ )
cvx_end
theta

where the decision variable is a matrix with 6 rows and 2 columns, x is a 1 by 6 row vector, A and Q are 2 by 2 matrix, and z is a 1 by 2 row vector.

When running this code, it outputs “Disciplined convex programming error: Only scalar quadratic forms can be specified in CVX.”.

I would appreciate it if anyone could help me to solve this problem. Thank you!

Maybe if you do

y = A’* theta’ * x’

and then

minimize( (1/2) * y’ * Q * y - z *y )

it works.

Alternatively you can explicitly inform CVX about the convex quadratic structure

minimize( (1/2) * quad_form(A' * theta' * x', Q) - z * A' * theta' * x' )

Thank you! I really appreciate that!

Thank you for taking time! Appreciate a lot!