NCcycOpt
description:
[A_new,f_min]=NCcycOpt(f) computes trace minimizers and the trace minimum of the polynomial f whenever the tracial moment matrix corresponding to the polynomial f is flat.
arguments:
f is an NCpoly representing a polynomial.
output:
A_new is a matrix each of whose rows represent a square matrix A_i that is a trace minimizer for f. The matrices A_i are simultaneously block diagonal.
f_min represents the trace minimum of f. Each element in this vector equals the trace of the evaluation of f in equally positioned diagonal blocks consisting of matrices A_i.
possible usage:
NCcycOpt(f)
see also:
example:
>> f = 3 + x^2 + 2*x^3 + 2*x^4 + x^6 - 4*x^4*y + x^4*y^2 + 4*x^3*y + 2*x^3*y^2 - 2*x^3*y^3 + 2*x^2*y - x^2*y^2 + 2*x^2*y^3 - 4*x*y + 8*x*y*x*y + 4*x*y^2 + 6*x*y^4 - 2*y + y^2 - 4*y^3 + 2*y^4 + 2*y^6;
>> [A_new,f_min]=NCcycOpt(f)
***** Polynomial has a flat extension *****
A_new =
Columns 1 through 8
-1.0623 -0.0000 0.0902 0.6111 -0.0000 -1.0623 -0.6111 0.0902
-0.3933 0.0000 -0.1295 -0.8770 0.0000 -0.3933 0.8770 -0.1295
Columns 9 through 16
0.0902 -0.6111 0.4582 -0.0000 0.6111 0.0902 -0.0000 0.4582
-0.1295 0.8770 0.6718 0.0000 -0.8770 -0.1295 0.0000 0.6718
f_min = 0.28421477