Я использую процедуру scipy.optimize.minimize (...), и мне нужно указать аргумент ограничений, который принимает форму:
N = 50
cons = ({'type': 'ineq', 'fun': lambda x: x[0]<x[1]},
{'type': 'ineq', 'fun': lambda x: x[1]<x[2]},
{'type': 'ineq', 'fun': lambda x: x[2]<x[3]},
...)
, который содержит $ N $ кортежей в форме {'type': 'ineq', 'fun': lambda x: x [i]
Я хотел бы создать такой словарь, используя цикл (или другой способ) в духе
cons = dict([{'type':'ineq','fun':lambda x[i]<x[i+1]} for i in range(0,N)])
Я попытался:
cons = zip(['fun' for i in range(0,N)], [lambda x: x[i]<x[i+1] for i in range(0,N)])
, но это не работает, и я не знаю, как управлять несколькими ключами и значениями.