You can concisely pointwise multiply two MVar objects following numpy's conventions. For example, the expression
$$\begin{align} \begin{bmatrix} u_1 \\ u_2 \\ u_3 \end{bmatrix} = \begin{bmatrix} x_1 y_1 \\ x_2 y_2 \\ x_3 y_3 \end{bmatrix} \end{align}$$
can be constructed as follows:
import gurobipy as gp
import numpy as np
m = gp.Model()
x = m.addMVar(3)
y = m.addMVar(3)
u = m.addMVar(3)
m.addConstr(u == x * y)
Further information
- How do I multiply two MLinExpr objects together with the matrix-friendly Python API?
- How do I pointwise multiply a numpy vector with a (1,) MVar with the matrix-friendly Python API?
- How do I multiply an array and a 2-D MVar object using the matrix-friendly Python API?
- How do I pointwise multiply an array and an MVar with the matrix-friendly Python API?