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.
pre-made functions¶
Sageopt offers two pre-made functions for certifying nonnegativity and finding SAGE decompositions:
sage_feasibility
and sage_multiplier_search
. These functions are accessible as top-level 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 X-SAGE decomposition.- Parameters
f (Signomial or Polynomial) – We want to know if this function admits an X-SAGE decomposition
X (SigDomain or PolyDomain) – Default to \(X = \mathbb{R}^{\texttt{f.n}}\).
- Returns
prob – Has objective “maximize 0”, and constraints that
f
is X-SAGE.- Return type
-
sageopt.
sage_multiplier_search
(f, level=1, X=None)¶ Construct a Problem for an attempt to certify that
f
is X-nonnegative.- 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 X-SAGE. The main variables in this problem are the coefficients ofg
. The complexity ofg
is determined bylevel
.- Return type