def toOpt(x,rsk,doh):
# ограничитель на 100% распределения средств
if sum(x) != 1:
return 0
# ограничитель по риску
ar = []
for i in range(len(x)):
ar.append(rsk[i]*(x[i]**2))
mris = math.sqrt(sum(ar))
if mris > 0.15:
return 0
# считаем максимальную доходность
ar = []
for i in range(len(x)):
ar.append(doh[i]*x[i])
tmax = sum(ar)
return tmax
rsk = [0.022066999464842394, 0.026462734577576533, 0.03329919092113635, 0.027660815860746285, 0.026329576864529882]
doh = [-0.006779403781041136, 0.004880350115622904, -0.0011432743291569872, 0.007594218276622398, -0.01223390116926412]
списки rsk и doh заведомо рассчитаны, требуется найти оптимальный набор значений списка x. Покажите, как это сделать?
Формула в общем виде: http://img231.imageshack.us/img231/6089/016v.png
man SciPy уже предлагали, ниасилил, прошу просто взять и показать. =)