(bound,sol) = lowerBound(f)
(bound,sol) = lowerBound(f,D)
(bound,sol,mult) = lowerBound(f,h,D)
This method finds a lower bound for a polynomial or rational function $x\mapsto f(x)$. More precisely, this method solves the following relaxation
$$max \, t \,\,\, s.t. \,\,\, f(x)  t \, is SOS $$
In some cases the minimizer can be extracted with the method recoverSolution.





By default the method tries to obtain a rational lower bound. Since there is a tradeoff between rounding and optimality, we specify the rounding precision as an optional input argument.
Quotient rings: Given an ideal $I$, we can also find a lower bound for $f$ on the variety of $I$. This can be done by constructing the associated quotient ring. A degree bound must be provided.





Avoiding quotient rings: Constructing the quotient ring is sometimes too expensive since it requires Gröbner bases. There is an alternative (though weaker) relaxation that avoids Gröbner bases computation. Given equations $h_1(x),...h_m(x)$, we can look for multipliers $l_i(x)$ such that $f(x)  t + \sum_i l_i(x) h_i(x)$ is a sum of squares.






Optimizing rational functions: The following is an example of how to optimize a rational function.




The object lowerBound is a method function with options.