Bien sûr, il y a du code après, mais pour rester simple et exprimer mon problème, je vais seulement partager ceci. Tout fonctionne bien, j'ai juste besoin que le tableau "x" passe de la taille 24 au numéro de mon autre tableau (dans ce cas 100). Le tableau ne peut pas être modifié au début car il s'agit d'un facteur horaire. Je veux donc optimiser 24 valeurs et non pas créer un nouveau tableau et optimiser 100 valeurs différentes. Les 24 valeurs doivent se répéter les unes les autres car le tableau de taille 100 correspond à 4 jours et 4 heures (4*24+4=100). Bien sûr, je serais également heureux si quelqu'un connaissait une solution sans changer de dimension, mais je pense que ce n'est pas possible.
f=[1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06]
x4= [0.045930370209, 0.043303258083, 0.039624317151, 0.039318197146, 0.037919352547, 0.037661007306, 0.034399522806, 0.034002995811, 0.033886332129, 0.037339258323, 0.037931042705, 0.038383778229, 0.038823242557, 0.040123255664, 0.040823891738, 0.04379281023, 0.043943821635, 0.045684085291, 0.046003064191, 0.046954569286, 0.048654216051, 0.049955602478, 0.048859969614, 0.046682038822]
T_g=[10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.22025, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 10.424666667, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 9.1760277778, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 10.101444444, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222, 12.065722222]
x = m.Array(m.FV,24)
for i in range(24):
x[i].value = x4[i]
x[i].lower = 0.01
x[i].upper = 0.15
x[i].STATUS=1
e= m.Var(2.7,lb=1,ub=4)
l = m.Var(-35.1,lb=-38,ub=-30)
g = m.Var(7.1,lb=5,ub=9)
h = m.Var(0.142,lb=0.0,ub=1.5)
xop=[None]*1
ysimm=[None]*1
a=[None]*1
index = np.ones(N,int)
for i in range(N):
index[i]= int(i%24)
a[0]=m.Intermediate((e / (1 + (l / (T_g - 40)) ** g) + h))
ysimm[0]=m.Intermediate(a[0]*f)
xop[0]=m.Intermediate(x[index]*ysimm[0])