Documentation‎ > ‎NCSOStoolsdemo‎ > ‎

### NCSOStoolsdemo - Nonnegativity on nc ball and nc polydisc and extracting corresponding minimizers

 %**************************************************************************% Nonnegativity on nc ball and nc polydisc and extracting corresponding   *% minimizers                                                              *%**************************************************************************% -------------------------------------------------------------------------% First we construct some symbolic noncommuting variables and some% polynomial% ------------------------------------------------------------------------->> NCvars x y>> f = 2 - x^2 + x*y^2*x - y^2;% -------------------------------------------------------------------------% We can compute the optimal value on the nc ball% ------------------------------------------------------------------------->> NCminBall(f)***** NCSOStools: module NCminBall started *****Number of linear constraints: 58.Starting SDP solver ...... Residual norm: 6.3137e-015 ans = 1.0000% -------------------------------------------------------------------------% Similarly we can compute the optimal value on the nc polydisc% ------------------------------------------------------------------------->> NCminCube(f)***** NCSOStools: module NCminCube started *****Number of linear constraints: 67.Starting SDP solver ...... Residual norm: 6.4065e-013ans = 1.0872e-011% -------------------------------------------------------------------------% Together with the optimal value opt we can also return a certificate for% positivity of f-opt for example on nc ball (and similarly on nc% polydisc), i.e., a sohs decomposition with weights for f-opt.% ------------------------------------------------------------------------->> [opt,g,decom_sohs,decom_ball] = NCminBall(f)***** NCSOStools: module NCminBall started *****Number of linear constraints: 58.Starting SDP solver ...... Residual norm: 6.3137e-015opt = 1.0000g = 1-x^2-y^2 decom_sohs =                             0                                         0                               -2e-008*x^2                                 -3e-008*x                    -5e-008*x*y+1e-008*y^2             -1e-008+1e-008*x*y+5e-008*y^2                                       y*xdecom_ball =        1             2e-008*x             5e-008*y % -------------------------------------------------------------------------% NCminBall (and NCminCube) has many optional parameters. For example we% can set the smallest value that is considered to be nonzero in numerical% calculations.% ------------------------------------------------------------------------->> params.precision=1e-6;>> [opt,g,decom_sohs,decom_ball] = NCminBall(f,params)***** NCSOStools: module NCminBall started *****Number of linear constraints: 58.Starting SDP solver ...... Residual norm: 6.3137e-015opt = 1.0000 g = 1-x^2-y^2 decom_sohs =   0               0               0               0               0               0             y*x decom_ball = 1             0             0 % -------------------------------------------------------------------------% Let's check the obtained sohs decomposition with weights for f-opt.% ------------------------------------------------------------------------->> f-opt ans = 1-x^2+x*y^2*x-y^2>> decom_sohs'*decom_sohs + decom_ball'*g*decom_ball ans = 1-x^2+x*y^2*x-y^2 % -------------------------------------------------------------------------% We can also compute minimizers to attain optimal value on nc ball.% ------------------------------------------------------------------------->> [X,fX,eig_val,eig_vec]=NCoptBall(f)***** NCSOStools: module NCoptBall started ********** NCSOStools: module GNS started *****found 5 linearly independent vectors ...using corresponding columns of a matrix ...using corresponding words in a cell of monomials ...constructing final matrices ... done.***** NCSOStools: module GNS completed *****Evaluating X ..... completed.*** Minimum eigenvalue for f is 1.000000. ***WARNING: Optimizers are numerically slightly out of the ball!Maximal eigenvalue: 1.000000!***** NCSOStools: module NCoptBall completed with warnings! *****X = Columns 1 through 8    -0.0000    0.7107   -0.0000    0.0000    0.0000    0.7107    0.0000   -0.0000    -0.0000    0.0000    0.7035    0.0000    0.0000    0.0000   -0.0000    0.0000    Columns 9 through 16     0.3536   -0.0000   -0.0000   -0.0000   -0.0000    0.0000    0.4946    0.0000    -0.0000    0.0000    0.7035    0.0000    0.0000   -0.3588    0.0000    0.0000    Columns 17 through 24     0.3536    0.0000    0.0000    0.0000    0.0000   -0.0000    0.4946    0.0000    -0.0000   -0.3588    0.0000   -0.0000    0.0000    0.0000    0.0000   -0.0000    Column 25     0.0000     0.0000fX = 1.0000   -0.0000   -0.0000    0.0011   -0.0000    -0.0000    1.5091   -0.0000   -0.0000   -0.0000    -0.0000   -0.0000    1.1317   -0.0000   -0.0000     0.0011   -0.0000   -0.0000    1.7462    0.0000    -0.0000   -0.0000   -0.0000    0.0000    1.9080eig_val = 1.0000         0         0         0         0               0    1.1317         0         0         0               0         0    1.5091         0         0               0         0         0    1.7462         0               0         0         0         0    1.9080eig_vec = -1.0000   -0.0000   -0.0000   -0.0015   -0.0000          -0.0000    0.0000    1.0000    0.0000   -0.0000          -0.0000    1.0000   -0.0000    0.0000   -0.0000           0.0015    0.0000    0.0000   -1.0000    0.0000          -0.0000    0.0000    0.0000    0.0000    1.0000% It means that with A=reshape(X(1,:),5,5) and B=reshape(X(2,:),5,5) we get% f(A,B) as fX with minimal eigenvalue eig_val(1,1) (which is also an% optimal value on nc ball) and corresponding eigenvector eig_vec(:,1).% -------------------------------------------------------------------------% Similarly we can also compute minimizers to attain optimal value on nc% polydisc).% ------------------------------------------------------------------------->> [X,fX,eig_val,eig_vec]=NCoptCube(f)***** NCSOStools: module NCoptCube started ********** NCSOStools: module GNS started *****found 4 linearly independent vectors ...using corresponding columns of a matrix ...using corresponding words in a cell of monomials ...constructing final matrices ... done.***** NCSOStools: module GNS completed *****Evaluating X ..... completed.*** Minimum eigenvalue for f is 0.000000. ******** NCSOStools: module NCoptCube completed *****X = Columns 1 through 8    -0.0000    1.0000    0.0000    0.0000    1.0000    0.0000   -0.0000   -0.0000     0.0000   -0.0000    1.0000    0.0000   -0.0000    0.0000   -0.0000   -0.0000    Columns 9 through 16     0.0000   -0.0000   -0.0000    0.7343    0.0000   -0.0000    0.7343    0.0000     1.0000   -0.0000   -0.0000    0.0000    0.0000   -0.0000    0.0000    0.0000fX = 0.0000   -0.0000    0.0000   -0.0000    -0.0000    2.0000    0.0000   -0.0000     0.0000    0.0000    0.4608   -0.0000    -0.0000   -0.0000   -0.0000    2.0000eig_val = 0.0000         0         0         0               0    0.4608         0         0               0         0    2.0000         0               0         0         0    2.0000eig_vec = 1.0000    0.0000    0.0000    0.0000          0.0000   -0.0000   -1.0000    0.0000         -0.0000    1.0000   -0.0000    0.0000          0.0000    0.0000   -0.0000   -1.0000% It means that with A=reshape(X(1,:),5,5) and B=reshape(X(2,:),5,5) we get% f(A,B) as fX with minimal eigenvalue eig_val(1,1) (which is also an% optimal value on nc polydisc) and corresponding eigenvector eig_vec(:,1).