根据我的原始答案和随后的讨论,这是另一种尝试。
据我所知,scipy.optimize模块适用于具有标量或矢量输入以及标量输出或“成本”的函数。
由于您将每个方程式视为独立于其他方程式,所以我最好的主意是使用多处理模块并行进行工作。如果您要最小化的功能与问题中的功能一样简单,那么我认为这是不值得的。
如果功能更复杂,并且您希望将工作划分,请尝试以下 *** 作:
import numpy as npfrom scipy import optimizefrom multiprocessing import Pooldef square(x, a=1): return [np.sum(x**2 + a), 2*x]def minimize(args): f,x,a = args res = optimize.minimize(f, x, method = 'BFGS', jac = True, args = [a]) return res.x# your a valuesa = np.arange(1,11)# initial guess for all the x valuesx = np.empty(len(a))x[:] = 25args = [(square,a[i],x[i]) for i in range(10)]p = Pool(4)print p.map(minimize,args)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)