簡體   English   中英

如何將我的 matlab 代碼翻譯成 python cvx?

[英]How do I translate my matlab code to python cvx?

我需要將我的代碼從 matlab cvx 翻譯成 python one,如果對我有任何幫助,我會很高興。 `

eps = .1;

A = [-1 +1 0 0 0 0 0 0 -1; +1 0 -1 0 0 0 0 -1 0;

  0 +1 +1 -1  0  0  0  0  0;
  0  0  0 +1 -1 -1  0  0  0;
  0  0  0  0 +1  0 +1  0 +1;
  0  0  0  0  0 +1 -1 +1  0];
s = [1;0;0;0;-1;0];
t = [0;1;0;0;0;-1];

cvx_begin
    variables x_star(n) y_star(n)
    dual variables mu_star nu_star
    minimize(sum((x_star+y_star).^2)+eps*(sum(x_star.^2+y_star.^2)))
    subject to
        mu_star: A*x_star+s==0;
        nu_star: A*y_star+t==0;
        x_star >= 0;
        y_star >= 0;
cvx_end
f_min = cvx_optval;

`

從 cvx 到 python cvx 的翻譯。

從 cvx 到 python cvx.py 的翻譯是:

import cvxpy as cp

eps = .1
A = [[-1, 1, 0, 0, 0, 0, 0, 0, -1], [1, 0, -1, 0, 0, 0, 0, -1, 0], [0, 1, 1, -1, 0, 0, 0, 0, 0], [0, 0, 0, 1, -1, -1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 0, 1, -1, 1, 0]]
s = [1, 0, 0, 0, -1, 0]
t = [0, 1, 0, 0, 0, -1]

x_star = cp.Variable(len(A[0]))
y_star = cp.Variable(len(A[0]))
mu_star = cp.Variable(len(s))
nu_star = cp.Variable(len(t))

objective = cp.Minimize(cp.sum_squares(x_star + y_star) + eps * (cp.sum_squares(x_star) + cp.sum_squares(y_star)))
constraints = [A * x_star + s == 0, A * y_star + t == 0, x_star >= 0, y_star >= 0]

prob = cp.Problem(objective, constraints)
prob.solve()

f_min = prob.value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM