I need to maximize the following function (the input to NMaximize
below)
NMaximize[{((1/3) + f[p]*(1 - p)*(((1/(Sqrt[2]/2))*p)^2-1))/(1+(1-p)*
(((1/(Sqrt[2]/2))*p)^2 - 1)), p >= Sqrt[2]/2, p <= 1}, {p}]
where $f(\cdot)$ is defined as follows
f[p_?NumericQ] := NMinimize[{-((a + a^2 + b - 2 a b + b^2 + c - 2 a c - 2 b c + c^2)
/((-1 + a) (a + b + c))), 0 <= a, a <= b, b <= c, c <= 1, c <= a + b, (a + b + c)/3 <= p},
{a, b, c}, Method -> "DifferentialEvolution"][[1]]
However, as expected, the computation does not end ,and there are several alert messages. Considering the underlying mathematical problem I am trying to solve, I could replace $f(\cdot)$ by a simple function $g(\cdot)$ that approximates it, but I need $g(p)\le f(p)$ for all $p\in[0,1]$. I tried to use InterpolatingPolynomial
with a few values of $f(\cdot)$. However, $f(\cdot)$ is neither concave nor convex in $[0,1]$. I am struggling to obtain a good approximation of $f(\cdot)$ which satisfies the $g(p)\le f(p)$ in $[0,1]$.
How can we generate such approximation function $g(\cdot)$ (alternately, can we solve this optimization problem in a different way)?