matlab下的CVX, 是極富盛名的凸優化解題工具包。
其實他在python下也有相應的庫, 叫 cvxpy.
但是他的安裝沒有那麼容易: 直接使用
pip install cvxpy
會報錯。
經過作者多次踩坑, 摸索出了正確的打開方式:
首先, 我用的是python 3.6, 但估計python 3都可以。
系統是Win 10。
使用Anaconda進行下載。 (不瞭解的可以百度Anaconda,非常有用。)
打開Anaconda Prompt, 依次輸入下列兩個命令:
conda install -c conda-forge lapack
conda install -c cvxgrp cvxpy
即可 安裝完成。
開始編寫demo, 測試安裝成功與否,使用cxvpy的官方例程:
import cvxpy as cp
import numpy as np
# Generate data.
m = 20
n = 15
np.random.seed(1)
A = np.random.randn(m, n)
b = np.random.randn(m)
# Define and solve the CVXPY problem.
x = cp.Variable(n)
cost = cp.sum_squares(A @ x - b)
prob = cp.Problem(cp.Minimize(cost))
prob.solve()
# Print result.
print("\nThe optimal value is", prob.value)
print("The optimal x is")
print(x.value)
print("The norm of the residual is ", cp.norm(A @ x - b, p=2).value)
運行效果如下:
大功告成!
備註:
繼續使用發現, numpy版本報錯。 猜測是conda install cvxpy的過程中, 擾亂了numpy 的版本。
使用
pip uninstall numpy
無濟於事,無法刪除。
最後在site-packages 文件夾下,找到numpy文件夾, 刪除, 再重新使用
pip install numpy
即可成功。