【发布时间】:2013-09-17 00:57:39
【问题描述】:
我需要一些关于 python(scipy) 中优化函数的帮助
问题是优化f(x) 其中x=[a,b,c...n]。约束条件是 a、b 等的值应介于 0 和 1 之间,并且 sum(x)==1。 scipy.optimise.minimize 函数似乎最好,因为它不需要微分。我如何传递论点?
使用排列创建一个 ndarray 太长了。我现在的代码如下:-
import itertools as iter
all=iter.permutations([0.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0],6) if sum==1
all_legal=[]
for i in all:
if np.sum(i)==1:
#print np.sum(i)
all_legal.append(i)
print len(all_legal)
lmax=0
sharpeMax=0
for i in all_legal:
if sharpeMax<getSharpe(i):
sharpeMax=getSharpe(i)
lmax=i
【问题讨论】:
-
旁白:
iter是一个内置函数的名称,所以它不是itertools的好缩写。 -
目前还不清楚您要优化什么。你能更详细地描述一下这个问题吗?
-
我强烈推荐阅读 Scipy 讲座中关于 Optimization 的章节。值得一读。
标签: python optimization numpy scipy