Documentation‎ > ‎NCSOStoolsdemo‎ > ‎

### NCSOStoolsdemo - Cyclic equivalence and sum of hermitian squares

 %**************************************************************************% Cyclic equivalence and sum of hermitian squares                         *%**************************************************************************% -------------------------------------------------------------------------% First we construct some symbolic noncommuting variables% ------------------------------------------------------------------------->> NCvars x y% -------------------------------------------------------------------------% We can check whether two polynomials f and g are cyclically equivalent,% i.e., whether f - g is a sum of commutators.% ------------------------------------------------------------------------->> NCisCycEq(x^2*y*x + y*x^3, 2*x*y*x^2)ans = 1% -------------------------------------------------------------------------% We can construct a canonical cyclically equivalent representative of the% polynomial% ------------------------------------------------------------------------->> NCcycEqRep(x^2*y*x + y*x^3 + x*y*x + x^2*y - 2*y*x^2) ans = 2*x^3*y % -------------------------------------------------------------------------% We can check whether the polynomial is cyclically equivalent to a sum of% hermitian squares.% ------------------------------------------------------------------------->> f = x^4 - 2*x^2*y + y^2 + x*y - y*x;>> [IsCycEq,X,base,sohs,g] = NCcycSos(f)***** NCSOStools: module NCcycSos started *****Input polynomial has (max) degree 4 and min degree 2.Detected 5 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.There are 28 monomials in 2 variables of degree at most 4 and at least 2.Preprocessing the input polynomial ...Returned cyclically equivalent polynomial with (max) degree 4 and min degree 2.Detected 3 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.There are 28 monomials in 2 variables of degree at most 4 and at least 2.Using alpha degree to construct the monomial vector.Keeping 2 monomials in the monomial vector.Computing cyclically equivalent products ... done.Preparing linear constraints ...Number of linear constraints: 3.Starting SDP solver ...... Residual norm: 2.8174e-015Computing SOHS decomposition ... done.Found SOHS decomposition with 2 factors.IsCycEq = 1X =  1.0000   -1.0000    -1.0000    1.0000base = 'y'       'x*x'sohs =     -x^2+y       6e-008*x^2 g = 1*x^4-x^2*y-y*x^2+y^2% -------------------------------------------------------------------------% NCcycSos has many optional parameters. For example we can set the% smallest value that is considered to be nonzero in numerical% calculations.% ------------------------------------------------------------------------->> params.precision = 1e-5;>> [IsCycEq,X,base,sohs,g] = NCcycSos(f,params)***** NCSOStools: module NCcycSos started *****Input polynomial has (max) degree 4 and min degree 2.Detected 5 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.There are 28 monomials in 2 variables of degree at most 4 and at least 2.Preprocessing the input polynomial ...Returned cyclically equivalent polynomial with (max) degree 4 and min degree 2.Detected 3 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.There are 28 monomials in 2 variables of degree at most 4 and at least 2.Using alpha degree to construct the monomial vector.Keeping 2 monomials in the monomial vector.Computing cyclically equivalent products ... done.Preparing linear constraints ...Number of linear constraints: 3.Starting SDP solver ......Residual norm: 2.8174e-015Computing SOHS decomposition ... done.Found SOHS decomposition with 1 factors.IsCycEq = 1X =  1.0000   -1.0000    -1.0000    1.0000base = 'y'       'x*x' sohs = -x^2+y g = x^4-x^2*y-y*x^2+y^2% -------------------------------------------------------------------------% We can compute the maximal epsilon such that f-epsilon is cyclically% equivalent to a sum of hermitian squares. % ------------------------------------------------------------------------->> f = x^4 - 4*x^2*y + 8*y + 4*y^2 - 4*x^2;>> [opt,X,base,sohs,g] = NCcycMin(f)***** NCSOStools: module NCcycMin started *****Input polynomial has (max) degree 4 and min degree 1.Detected 5 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.There are 30 monomials in 2 variables of degree at most 4 and at least 1.Preprocessing the input polynomial ...Returned cyclically equivalent polynomial with (max) degree 4 and min degree 0.Detected 6 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.Constructing monomial vector with 4 monomials.Computing cyclically equivalent products ... done.Preparing linear constraints ...Number of linear constraints: 8.Starting SDP solver ......Residual norm: 1.8939e-010Computing SOHS decomposition ... done.Found SOHS decomposition with 4 factors.opt = -4.0000X =  4.0000    4.0000   -0.0000   -2.0000     4.0000    4.0000   -0.0000   -2.0000    -0.0000   -0.0000    0.0000    0.0000    -2.0000   -2.0000    0.0000    1.0000base = ''       'y'       'x'       'x*x' sohs =                 2-x^2+2*y       5.99e-006*x^2+5.55e-006*y                    1.025e-005*x                   4.91e-006*x^2 g = 4-4*x^2+1*x^4-2*x^2*y+8*y-2*y*x^2+4*y^2% -------------------------------------------------------------------------% NCcycMin has many optional parameters. For example we can set the% smallest value that is considered to be nonzero in numerical% calculations.% ------------------------------------------------------------------------->> params.precision = 1e-4;>> [opt,X,base,sohs,g] = NCcycMin(f,params)***** NCSOStools: module NCcycMin started *****Input polynomial has (max) degree 4 and min degree 1.Detected 5 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.There are 30 monomials in 2 variables of degree at most 4 and at least 1.Preprocessing the input polynomial ...Returned cyclically equivalent polynomial with (max) degree 4 and min degree 0.Detected 6 monomials in 2 variables.There are 31 monomials in 2 variables of degree at most 4.Constructing monomial vector with 4 monomials.Computing cyclically equivalent products ... done.Preparing linear constraints ...Number of linear constraints: 8.Starting SDP solver ......Residual norm: 1.8939e-010Computing SOHS decomposition ... done.Found SOHS decomposition with 1 factors.opt = -4.0000X =  4.0000    4.0000   -0.0000   -2.0000     4.0000    4.0000   -0.0000   -2.0000    -0.0000   -0.0000    0.0000    0.0000    -2.0000   -2.0000    0.0000    1.0000base = ''       'y'       'x'       'x*x' sohs = 2-x^2+2*y g = 4-4*x^2+x^4-2*x^2*y+8*y-2*y*x^2+4*y^2 % -------------------------------------------------------------------------% We can check if the second directional derivative of a polynomial is% cyclically equivalent to a sum of hermitian squares.% ------------------------------------------------------------------------->> f = 1 + 2*x^2 + x*y + 2*y^2;>> [iscConvex,g,sohs,h] = NCisCycConvex(f,10e-5)iscConvex = 1g = 4*h1^2+2*h1*h2+4*h2^2 sohs = 0.5*h1+2*h2          1.937*h1 h = 4.0000323*h1^2+h1*h2+h2*h1+4*h2^2