[問題] Scipy 極大化限制式寫法求解

看板Python作者 (horby)時間9年前 (2016/01/29 00:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
想請教關於scipy限制式的寫法 簡單程式如下: import numpy as np import scipy as sp import scipy.optimize as opt #給定一些變數值,w0是起始值,w1是限制的依據,score是其他運算資料,不重要 w1 = np.array([ 0.4, 0.3, 0.2, 0.1, 0. , -0.1, -0.2, -0.3, -0.4]) w0 = np.ones(w1.size)/w1.size score = np.array([ 0.04, -0.24, 0.01, 0. , -0.27, 0.02, 0.03, -0.11, -0.05]) #目標函數 def objfun(w, score, w1): return -1.0 * np.dot(w, score) #限制式 bounds = [(-0.1 + i, i+0.1) for i in w1] #求解 results = opt.minimize(objfun, w0, args = (score, w1), method = "SLSQP", bounds = bounds) 基本上我要求解w使函數極大化,但是w的變化範圍限定在w1的正負10% 上述的寫法可以成功,但我想知道以constraints改寫bounds要怎麼寫, 請大家指點一下,謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.161.14 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1453998240.A.248.html
文章代碼(AID): #1Mga2W98 (Python)
文章代碼(AID): #1Mga2W98 (Python)