繁体   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