我在使用时遇到问题scipy.optimize.minimize.最小化从Python2.7。我要打印的是每个函数求值的x值。但是,它返回的结果只给出了与迭代相对应的x值。有办法吗?谢谢!在
这是密码
import math
import sys
from scipy import optimize
f_NMO=open('output_NMO.txt','w')
def rosenbr(x):
x1 = x[0]
x2 = x[1]
f = pow((x2-pow(x1,2)),2)/0.01+pow((x1-1),2)
return f
xi2 = [5,5]
def cb1(r1):
f_val1=rosenbr(r1)
global best1
best1 = 300
global ctn1
ctn1 += 1
if f_val1 < best1:
best1 = f_val1
f_NMO.write("%.0f" % ctn1 + " , fun=" + "%.8f" % f_val1 + " , best=" + "%.8f" % best1 + " , xa=" + "%.8f" % r1[0] + " , xb=" + "%.8f" % r1[1] + '\n')
r1=optimize.minimize(rosenbr, xi2, method='Nelder-Mead', tol=1e-6, callback=cb1, options={'maxfev': 5000, 'disp': True, 'return_all': True})
相关问题 更多 >
编程相关推荐