【发布时间】:2016-05-12 01:11:41
【问题描述】:
今天我想问你下一个问题——如何在优化函数(scipy、Python)中改变x数组?
例子:
from scipy.optimize import minimize
def function(x):
for i in range(len(x)):
if x[i]<0:
x[i]=0
F = 0.0
print list(x)
for i in x:
F += i**3
return F
n = 5
x0=[]
for i in range(n):
x0.append(-1.0)
res = minimize(function, x0, method='Nelder-Mead')
print res
但是结果是数组([-1., -1., -1., -1., -1.]):
.........................
.........................
[0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0]
[0.0, 0.0, 0.0, 0.0, 0.0]
status: 1
nfev: 1006
success: False
fun: 0.0
x: array([-1., -1., -1., -1., -1.])
message: 'Maximum number of function evaluations has been exceeded.'
nit: 148
【问题讨论】:
标签: python optimization scipy minimize