[英]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.