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
fadmits 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
fis X-SAGE.- Return type
-
sageopt.sage_multiplier_search(f, level=1, X=None)¶ Construct a Problem for an attempt to certify that
fis X-nonnegative.- Parameters
f (Signomial or Polynomial) – We are looking for a certificate that
fis nonnegative overX.level (int) – A positive integer. This determines the complexity of a modulator
gwhich 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
gandf * gare X-SAGE. The main variables in this problem are the coefficients ofg. The complexity ofgis determined bylevel.- Return type