我试着去解乘以向量“factor”和的因子x。向量“Factor”的和应该是向量“Basic”的和。 首先,我读到一个csv,它看起来像下面的数据帧:
提前谢谢你的帮助。你知道吗
嗯,我也试过最小化和反弹。也许用它会更好科学优化?你知道吗
import pandas as pd
from scipy.optimize import minimize, optimize
import numpy as np
path='/scipytest.csv'
dffunc=pd.read_csv(path, decimal=',', delimiter=';')
BaseSum=np.sum(dffunc['Basic'])
FacSum=np.sum(dffunc['Factor'])
def f(x, FacSum):
return BaseSum-FacSum*x
con = {'type': 'ineq',
'fun': lambda BaseSum,FacSum: BaseSum-FacSum,
'args': (FacSum,)}
x=0
result = minimize(f,(x,FacSum), args=(FacSum,), method='SLSQP', constraints=con)
print(result.x)
print(f(result.x))
raisevalueerror(“目标函数必须返回标量”)
ValueError:目标函数必须返回标量
我认为你不一定需要
scipy.optimize.minimize
。因为要最小化标量,所以可以使用scipy.optimize.minimize_scalar
(docs)。可以按以下方式进行:输出:
此外,我甚至不知道为什么你甚至需要使用最小化,当你可以简单地做:
相关问题 更多 >
编程相关推荐