<p>我正在做优化,但我得到了一个错误(<code>TypeError: unsupported operand type(s) for /: 'float' and 'list'</code>)</p>
<p>我在excel中有几个已知参数(Jflu、Ci、Rd、O、a)。我首先使用Pandas从excel导入这些参数<code>g</code>是一个未知常数,我想得到一个最优的<code>g</code>,使<code>objfun</code>最小化</p>
<p>我对Python还不熟悉。我的代码如下:</p>
<pre><code>#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)
</code></pre>