[英]optimization of interpolation functions in Python
I have a some model dimensions data (SangleRatio, RangleRatio, RudAngleRatio, RadRatio, SratioPole, RratioPole, Lwire, Nwire) and result from these data (nn) , and want to find the "optimal" model dimensions values (minimize "intnn" fcn): 我有一些模型尺寸数据(SangleRatio,RangleRatio,RudAngleRatio,RadRatio,SratioPole,RratioPole,Lwire,Nwire),并从这些数据(nn)中得出结果,并希望找到“最佳”模型尺寸值(最小化“ intnn” fcn ):
import numpy as np
import scipy as sc
import scipy.interpolate as interpolate
import scipy.optimize as optimize
exp= np.genfromtxt(ConsFile, delimiter="_")
SangleRatio, RangleRatio, RudAngleRatio, RadRatio, SratioPole, RratioPole, Lwire, Nwire = exp[:,0], exp[:,1], exp[:,2], exp[:,3], exp[:,4], exp[:,5], exp[:,6], exp[:,7]
nn = exp[:,8]
intnn = interpolate.Rbf(SangleRatio, RangleRatio, RudAngleRatio, RadRatio, SratioPole, RratioPole, Lwire, Nwire, nn,function='cubic')
initial_values = np.array([1.975, 1.525, 2.9, 3.6, 2.5, 5.335, 0.07, 22.25])
res=optimize.fmin_l_bfgs_b(intnn, x0=initial_values)
error messages: 错误讯息:
Traceback (most recent call last):
File "/home/peniak/pyth/optNew/interpolate10d_3.py", line 67, in <module>
res=optimize.fmin_l_bfgs_b(intnn, x0=initial_values)
File "/usr/local/lib/python2.7/dist-packages/scipy/optimize/lbfgsb.py", line 186, in fmin_l_bfgs_b
**opts)
File "/usr/local/lib/python2.7/dist-packages/scipy/optimize/lbfgsb.py", line 305, in _minimize_lbfgsb
isave, dsave)
TypeError: failed to initialize intent(inout|inplace|cache) array -- input must be array but got <type 'numpy.float64'>
Problem solved... 问题解决了...
def intNN(x):
定义intNN(x):
p1, p2, p3, p4, p5, p6, p7, p8 = xp1,p2,p3,p4,p5,p6,p7,p8 = x
res=(-1)*intnn(p1, p2, p3, p4, p5, p6, p7, p8)res =(-1)* intnn(p1,p2,p3,p4,p5,p6,p7,p8)
return float(res)返回float(res)
and then this function to optimize... 然后使用此功能进行优化...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.