如何只使用<代码>numpy限制最不发达国家广场。 是否有任何办法将制约因素纳入<代码>numpy.linalg.lstsq(。 或者有<代码>numpy+ 围起来,限制最不发达国家广场? 我知道,我可以很容易地利用<代码>cvxpy和scipy.optimize
,但这种优化将成为numba
的一部分。 JITed功能,这两个功能没有numba
的支持。
EDIT: Here is a dummy example of a problem I want to solve
arr_true = np.vstack([np.random.normal(0.3, 2, size=20),
np.random.normal(1.4, 2, size=20),
np.random.normal(4.2, 2, size=20)]).transpose()
x_true = np.array([0.3, 0.35, 0.35])
y = arr_true @ x_true
def problem():
noisy_arr = np.vstack([np.random.normal(0.3, 2, size=20),
np.random.normal(1.4, 2, size=20),
np.random.normal(4.2, 2, size=20)]).transpose()
x = cvxpy.Variable(3)
objective = cvxpy.Minimize(cvxpy.sum_squares(noisy_arr @ x - y))
constraints = [0 <= x, x <= 1, cvxpy.sum(x) == 1]
prob = cvxpy.Problem(objective, constraints)
result = prob.solve()
output = prob.value
args = x.value
return output, args
从根本上说,我的问题是,将1美元+x_2+x_3 = 1美元和4美元x_i、0 q x_i leq 1美元等值的Ax-y$降到最低。