Hi,

I’ve been trying to understand and generalize a piece of code which is one of the examples in the tutorial of CVX for Python, but I don’t completely understand the code, and Google hasn’t been very useful.

The particular problem is how to solve a semidefinite program for A-optimality (Boyd’s book, Section 7.5), and the program is as follows (given here http://cvxopt.org/examples/book/expdesign.html):

A-design.

minimize tr (V*diag(x)*V’)^{-1}

subject to x >= 0

sum(x) = 1equivalent to:

minimize tr Y

subject to [ V*diag(x)*V’, I ]

[ I, Y ] >= 0

x >= 0

sum(x) = 1

The code in the example can be found in the previous URL.

In that case the dimension of the points is 2, and the number of points is 20.

I just want to generalize to any number of points n, and any dimension d.

I don’t understand why the dimension of the matrix Gs is 16 there, and how/why the -1’s are introduced in those positions.

My best attempt for my generalization was:

I don’t know why the number of variables needs to include an “extra” dimension.

The error I get when I try to solve the problem with the previous code is **the squareroot of the number of rows in ‘Gs[1]’ is not an integer**, but I don’t understand why Gs should have a squared number of rows as from

minimize tr Y

subject to [ V*diag(x)*V’, I ]

[ I, Y ] >= 0

it is not obvious.

Thanks!