jump-dev / SumOfSquares.jl

Sum of Squares Programming for Julia
Other
116 stars 24 forks source link

Unclear Documentation on Creating SOS Polynomials #360

Open mohammedehab2002 opened 3 months ago

mohammedehab2002 commented 3 months ago

The documentation says creating SOS polynomials is the same as creating free polynomials but replacing Poly(basis) with SOSPoly(basis), but that doesn't seem to be true. The constraint seems to create a GramMatrix rather than a polynomial, and while the documentation claims a polynomial p is set to x'Qx, I can't find how to access that polynomial. I tried manually creating the polynomial as x'Qx, but in my case, I need x to be a Chebyshev basis. I tried using the MultivariateBases package for that, but I get an error saying ChebyshevBasisFirstKind doesn't support adjoint.

blegat commented 3 months ago

The GramMatrix is a polynomial in the form s = b' * Q * b where b is some polynomial basis. If you want to convert it to a polynomial, you can do polynomial(s). About Chebyshev basis, the support is being improved in https://github.com/jump-dev/SumOfSquares.jl/pull/355 but it's till a work in progress.