我想找出最佳参数,如 bo、ho、t1 和 t2,以使误差函数 (f) 最小(即,为零或接近于零)。完整代码如下所示,
import numpy
import scipy.optimize as optimize
#OPTIMISATION USING SCIPY
def Obj_func(x):
bo,ho,t1,t2=x
f=-321226.4817 + (10400000*bo*ho**3 - 10400000*(bo - 2*t2)*(ho - 2*t1)**3)/(125 + (10400000*bo*ho**3 - 10400000*(bo - 2*t2)*(ho - 2*t1)**3)/(1563920*t1*(bo - 2*t2)))
return f
initial_guess=[2,2,0.2,0.2]
cons = ({'type': 'eq', 'fun': lambda bo,ho,t1,t2: (bo*ho - (bo - 2*t2)*(ho - 2*t1)-7.55)})
bnds = ((0, None), (0, None),(0, None), (0, None)) #all four variables are positive and greater than zero
#Always t1 and t2 should always be lesser …
Run Code Online (Sandbox Code Playgroud)