python网页优化公司_使用python优化scipy.optimize.minimize公司
我將逐行檢查您的代碼,并強調一些問題:from scipy.optimize import minimize
import numpy as np
prices=np.array([[1.5,50,30]])
xp =np.array([[1.5,50,30]])
prices和xp是向量,不是矩陣,使用np.array([1.5,50,30])來聲明向量
^{pr2}$
函數(shù)的右邊不依賴于x,因此函數(shù)是常量。在python中,*也是元素級的。您可以使用np.dot來計算標量積。在fun = lambda x: np.dot(x, prices)cons = ({'type': 'ineq', 'fun': lambda x: (xp*0.25)<=500},
{'type': 'ineq', 'fun': lambda x: (xp*0.25)>=0})
這不是約束的定義方式。你可以檢查一下文件。不等式由一個集函數(shù)g_i(x)表示。其中g_i(x) >= 0表示所有i。同樣的問題是:函數(shù)聲明的右邊沒有使用x。在cons = ({'type': 'ineq', 'fun': lambda x: -x*0.25 + 500},
{'type': 'ineq', 'fun': lambda x: x*0.25})bnds = ((0, None), (0, None), (0, None))
這很好,但是當向量變長時,bnds = [(0,None)] * 3會派上用場。在res = minimize(fun, (2,0,0), method='SLSQP', bounds=bnds, constraints=cons)
函數(shù)和所有限制在x中都是線性的。因此,這是一個線性規(guī)劃,SLSQP可能不是解決它的最佳方法。對于這個例子,您可能想看看scipy.optimize.linprog。在
作為旁注:我想這只是一個玩具的例子。顯然,這種優(yōu)化的結果是零向量。在
結果是:njev: 3
x: array([ 0., 0., 0.])
nit: 3
status: 0
message: 'Optimization terminated successfully.'
jac: array([ 1.5, 50. , 30. , 0. ])
success: True
fun: 0.0
nfev: 15
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的python网页优化公司_使用python优化scipy.optimize.minimize公司的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非确定性算法_使用最坏情况提高基于MPC
- 下一篇: python调用centos防火墙_Ce