Я пытаюсь создать набор ограничений. Мне нужно создать тригонометрический продукт, в котором для каждого ввода из списка я знаю, использую ли я cos или sin.
def f(a, lista, limites, W, D, A):
def g(x):
rest=1
for i in lista:
if i==0:
rest*= rest*np.cos(x[lista.index(i)])
else:
rest*= rest*np.sin(x[lista.index(i)])
return (rest*W*D/(2*A[a]))-limites[a][0]
return g
constr=[]
for t in range (2**carro.qubits):
binario = [int(x) for x in f"{t:0{carro.qubits}b}"]
constr.append({'type':'ineq', 'fun': f(t, binario, limites, carro.W, carro.D, pesos)})
Я пытаюсь создать набор ограничений. Мне нужно создать тригонометрический продукт, в котором для каждого ввода из списка я знаю, использую ли я cos или sin. [code]def f(a, lista, limites, W, D, A): def g(x): rest=1 for i in lista: if i==0: rest*= rest*np.cos(x[lista.index(i)]) else: rest*= rest*np.sin(x[lista.index(i)]) return (rest*W*D/(2*A[a]))-limites[a][0] return g
constr=[] for t in range (2**carro.qubits): binario = [int(x) for x in f"{t:0{carro.qubits}b}"] constr.append({'type':'ineq', 'fun': f(t, binario, limites, carro.W, carro.D, pesos)}) [/code] Я не знаю, что здесь не так