如何使用cvxopt解决此优化问题

时间:2019-10-23 13:41:42

标签: python-3.x cvxopt

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

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

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

我可以用CVXOPT解决这样的程序吗?

1 个答案:

答案 0 :(得分:0)

我没有找到使用cvxopt的解决方案,但是找到了一个更好的选择- cvxpy

18

打印:

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)