У меня есть матрица, определенная в Python: (название документа matrix.py)Импорт матрицы из Python в Pyomo
N = 4
l = N
k = N
D = np.zeros((l,k))
for i in range(0,l):
for j in range(0,k):
if (i==j):
D[i,j] = 2
else:
D[i,j] = 0
D[0,0] = (2*N**2+1)/6
D[-1,-1] = -(2*N**2+1)/6
print(D)
Я хочу, чтобы использовать его в Pyomo, и я сделал:
import matrix
. . .
m.f_x1 = Var(m.N)
def f_x1_definition(model,i):
for j in m.N:
return m.f_x1[j] ==sum(D[i,j]*m.x1[j] for j in range(value(m.n)))
m.f_x1_const = Constraint(m.N, rule = f_x1_definition)
Но я получаю следующую ошибку: NameError: global name 'D' is not defined
Как я могу это сделать?
Varia bles, определенные в модуле 'matrix.py', должны быть доступны с помощью синтаксиса' matrix.D'. – hpaulj
Спасибо за ваш ответ. Но .. как я это делаю? Я не знаю, что вы имеете в виду. Спасибо, – Michael