我正在优化,但我得到了一个错误的错误(TypeError: unsupported operand type(s) for /: 'float' and 'list')。
我在 excel 中有几个已知的参数(Jflu、Ci、Rd、O、A)。我首先使用 Pandas 从 excel 导入这些参数。g是一个未知常数,我想得到一个最优值g来objfun最小化。
我是 Python 新手。我的代码如下:
#import my data
import pandas as pd
curves=pd.read_excel('C:/Users/Hello World/Curves.xlsx')
j=curves.Jflu
c=curves.Ci
R=curves.Rd
O=curves.O
A=curves.A
# optimize data
from scipy.optimize import minimize
#objective function
def objfun(g):
return (-(j/g+4.0*c+8.0*O-4.0*R/g)-((j/g+4.0*c+8.0*O-4.0*R/g)**2.0-4.0*(-4.0/g)*(8.0*O*R+4.0*c*R+O*j-c*j))**0.5)/(2.0*(-4.0/g))-A
g0=[0.001]
print(objfun(g0))
#Bounds
bnds=((0,1.0),)
#Minimize the function
res=minimize(objfun,g0,method='SLSQP',bounds=bnds)
print (res)
FFIVE
繁星淼淼
相关分类