如何用cvxopt解决这个优化问题

How to solve this optimization problem with cvxopt

我有一个非线性优化问题,在 Mathematica 中可以解决为:

FindMaximum[{(81 x + 19)^0.4 + (80 (1 - x) + 20)^0.6, 0 <= x <= 1}, x‬‬]

但是,现在我在没有 Mathematica 的计算机上,我想使用 CVXOPT 模块解决 Python 中的类似问题。我查看了 examples 并找到了线性程序、二次程序和其他类型的程序,但找不到这个简单的程序。

我能用CVXOPT解出这样的程序吗?

我没有找到使用 cvxopt 的解决方案,但我找到了一个更好的替代方案 - cvxpy:

import cvxpy as cp

x = cp.Variable()

prob = cp.Problem(
    cp.Maximize((81*x + 19)**0.6 + (80*(1-x)+20)**0.6),
    [0 <= x, x <= 1])
prob.solve()  # Returns the optimal value.
print("status:", prob.status)
print("optimal value", prob.value)
print("optimal var", x.value)

打印:

status: optimal
optimal value 23.27298502822502
optimal var 0.5145387371825181