Nonnegativity¶
Although most of sageopt is designed with optimization in mind, the underlying mechanism of “SAGE certificates” is really about certifying function nonnegativity. Certifying function nonnegativity (whether globally over \(\mathbb{R}^n\), or over some proper subset \(X \subset \mathbb{R}^n\)) is an important problem in the mathematical field of algebraic geometry, and has practical applications to control theory. This page discusses how you can use sageopt to certify signomial and polynomial nonnegativity.
premade functions¶
Sageopt offers two premade functions for certifying nonnegativity and finding SAGE decompositions:
sage_feasibility
and sage_multiplier_search
. These functions are accessible as toplevel imports
sageopt.sage_feasibility
and sageopt.sage_multiplier_search
, where they accept Signomial or Polynomial objects.

sageopt.
sage_feasibility
(f, X=None)¶ Construct a Problem for checking if
f
admits an XSAGE decomposition. Parameters
f (Signomial or Polynomial) – We want to know if this function admits an XSAGE decomposition
X (SigDomain or PolyDomain) – Default to \(X = \mathbb{R}^{\texttt{f.n}}\).
 Returns
prob – Has objective “maximize 0”, and constraints that
f
is XSAGE. Return type
Notes
This function is simply a wrapper around two functions of the same name, which were written for cases where
f
is a Signomial or Polynomial.

sageopt.
sage_multiplier_search
(f, level=1, X=None)¶ Construct a Problem for an attempt to certify that
f
is Xnonnegative. Parameters
f (Signomial or Polynomial) – We are looking for a certificate that
f
is nonnegative overX
.level (int) – A positive integer. This determines the complexity of a modulator
g
which is positive overX
.X (SigDomain or PolyDomain) – Default to \(X = \mathbb{R}^{\texttt{f.n}}\).
 Returns
prob – A problem with objective “maximize 0”, and constraints that both
g
andf * g
are XSAGE. The main variables in this problem are the coefficients ofg
. The complexity ofg
is determined bylevel
. Return type
Notes
This function is simply a wrapper around two functions of the same name, which were written for cases where
f
is a Signomial or Polynomial.