next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
SOS :: sosdecTernary

sosdecTernary -- Sum of squares decomposition for ternary forms.

Synopsis

Description

Given a nonnegative ternary form f, this method uses Hilbert’s algorithm to compute a decomposition of f as f=(∏ipi)/(∏iqi) where each factor pi and qi is SOS. The method returns null if f is not nonnegative. As an example, consider the homogeneous Motzkin polynomial:

i1 : R = RR[x,y,z];
i2 : f = library ("Motzkin", {x,y,z});
i3 : (p,q) = sosdecTernary (f);
-- warning: experimental computation over inexact field begun
--          results not reliable (one warning given per session)
Executing CSDP
Input file: /tmp/M2-2217789-0/4.dat-s
Output file: /tmp/M2-2217789-0/5
Status: SDP solved, primal-dual feasible
SDP solved in preprocessing

The result, in this case, is a quotient of two sums of squares.

i4 : (#p, #q)

o4 = (1, 1)

o4 : Sequence
i5 : f * sumSOS q#0 == sumSOS p#0

o5 = false

References: Products of positive forms, linear matrix inequalities, and Hilbert 17th problem for ternary forms, E. de Klerk, and D.V. Pasechnik, European J. Oper. Res. (2004), pp. 39-45.

Caveat

This implementation only works with the solvers "CSDP" and "MOSEK".

Due to the iterative nature of the algorithm, it could happen that some of the the output SOS polynomials are rational while some are real.

Ways to use sosdecTernary :