I want to perform the following least squares minimization problem in python using cvxpy
:
import numpy as np
import cvxpy as cp
# Generate the data
m = 20
n = 15
A = np.random.randn(m, n+2)
b = np.random.randn(m)
# Define and solve the CVXPY problem.
x1 = cp.Variable(1) # a single variable
x2 = cp.Variable(1) # a single variable
x3 = cp.Variable(n) # a vector of length n
cost_func = cp.sum_squares(A .dot([x1, x2, x3]) - b)
problem = cp.Problem(cp.Minimize(cost_func))
problem.solve()
I am always getting the error "shapes (20,17) and (3,) not aligned: 17 (dim 1) != 3 (dim 0)". This means that cvx
doesn't consider [x1, x2, x3]
as a n+2-vector
but a 3-vector
.
I tried to replace .dot
by @
but also didn't work. How can I do the matrix multiplication inside the sum_squares above?
Any help will be very appreciated!