I have the following nonlinear programming problem:
- real variables, the number of variables is greater than the number of constraints.
- need to maximize a linear objective function
- Some constraints are cubic equality equations (all terms are degree 3).
- Some constraints are quadratic equality equations (all terms are degree 2).
Is there any developed method for solving such program? At last, is there software for solving such problem?
You can try applying the KKT conditions (i.e., Lagrange multipliers) and then apply any standard method for unconstrained optimization: e.g., gradient descent, Newton's method, etc.
If you want to maximize $f(x)$, subject to $g_1(x)=\cdots=g_k(x)=0$, you can try setting
$$\Psi(x) = f(x) - \lambda g_1(x)^2 - \cdots - \lambda g_k(x)^2$$
and then maximize $\Psi(x)$, for some sufficiently large constant $\lambda$. A standard method is to start out with $\lambda$ being small and gradually increase it in each iteration of the optimization. This is a heuristic, as strictly speaking we might need $k$ different $\lambda$'s, but it might be sufficient in your use case. For instance, you could apply gradient descent or Newton's method to $\Psi(x)$.
Finally, you could express all equations as quadratic equations by adding extra variables. For instance, you can express $y=x^4$ as the quadratic constraints $y=t^2$, $t=x^2$ where $t$ is a new quadratic variable. This method can be used for arbitrary quartic equations; for each pair $x_i,x_j$ of variables, introduce a new variable $t_{i,j}$, add the constraint $t_{i,j} - x_i x_j = 0$ (which is a quadratic equation), and then replace each occurrence of $x_i x_j$ in any monomial of any quartic equation with $t_{i,j}$. You'll end up with maximizing a linear function subject to a bunch of quadratic equations. This could then be solved with an off-the-shelf QCQP solver.