Skip to main content
4 of 12
Changed title to CVXPY, because CVX is a different tool, and does not support DQCP
Mark L. Stone
  • 13.9k
  • 1
  • 34
  • 70

How to write this objective in CVXPY for quasiconvex programming?

I have the following objective that I want to maximize:

\begin{equation} \max_{U_T\in \mathbb{R}, x\in\mathbb{R}^T} J(U_T) = \alpha(\alpha-1)\log\left(\frac{\cosh(U_T)}{\cosh(\alpha U_T)^\frac{1}{\alpha}}\right) \,,\qquad \text{s.t:} \qquad U_T= Ax+b. \end{equation} where $A \in \mathbb{R}^{1\times T}$, $b\in\mathbb{R}$ and $\alpha>1$.

It is easy to show that this is, in fact, a pseudo-concave function by checking that: \begin{equation} \eta'_\alpha(u)(v-u)\leq0 \implies \eta_\alpha(v)\leq \eta_\alpha(u), \end{equation} where $\eta_\alpha(u) = \frac{\cosh(u)}{\cosh(\alpha u)^\frac{1}{\alpha}}$.

This, of course, implies the quasiconcavity of $J(U_T)$.

Here's a plot of the function that I made with Wolfram Mathematica: Plot of <span class=$J_\alpha(x)$ for $\alpha=2$." />

My questions are:

  • Is there a way to make this to write this objective function as a DQCP compliant program in CVXPY?
  • When $\alpha \to 1^+$, $J_1(u) = -\log[\frac{e^{x\tanh(x)}}{\cosh(x)} ]$ pointwise. Is there a way to write that as a DQCP compliant program in CVXPY as well?

I'm using CVXPY since I'll add more complicated constraints later, but maybe the problem has a simple analytical solution as well.