利用python中的scipy模組做線性規劃

2021-09-26 05:05:51 字數 1063 閱讀 8800

為數學建模準備。

scipy.optimize.linprog

引數選擇:linprog(c, a_ub, b_ub, a_ed, b_ed, bounds=none)

引數解釋—>>> c:價值向量,只規劃最小值,若規劃最大值需改為-c,但注意得出的結果應再加負號即為所求最大值;

a_ub和b_ub:分別對應於不等式約束的向量,注意只取小於等於時的陣列,而且a_ub必須為二維陣列;

a_ed和b_ed:分別對應於等式約束的向量,取法同上;

bounds:為決策向量的上下界,例bounds=([0, none], [none, none])表示第乙個元素的取值大於等於0,第二個為實數取值。

案例:min f = -2x0 + 4x1

s.t. -3x0 +x1 <=6

x0 + 2x1 >= 4

x0 + 3x1 = 4

x1 >= -3

import numpy as np

from scipy.optimize import linprog

c = np.array([-2, 4])

a_ub = np.array([[-3, 1], [-1, -2]])

b_ub = np.array([6, -4])

a_ed = np.array([[1, 3]])

b_ed = np.array([4])

linprog(c, a_ub, b_ub, a_ed, b_ed, bounds=([none, none], [-3, none]))

輸出結果為:

con: array([0.])

fun: -38.0

message: 'optimization terminated successfully.'

nit: 5

slack: array([48., 3.])

status: 0

success: true

x: array([13., -3.])

fun為最優解的值,x為取得最優解時對應的決策向量的取值。

python中scipy學習 隨機稀疏矩陣及操作

1.生成隨機稀疏矩陣 scipy中生成隨機稀疏矩陣的函式如下 scipy.sparse.rand m,n,density,format,dtype,random state 引數介紹 引數含義 m,n整型 表示矩陣的行和列 density 實數型別 表示矩陣的稀疏度 format str型別 表示矩...

SciPy中的統計模組

numpy 替我們搞定了向量和矩陣的相關操作,基本上算是乙個高階的科學計算器。scipy 基於 numpy 提供了更為豐富和高階的功能擴充套件,在統計 優化 插值 數值積分 時頻轉換等方面提供了大量的可用函式,接下來我們就學習一下 scipy 中的統計和優化模組。import numpy as np...

scipy 中的whiten函式

呼叫kmeans函式,kmeans中呼叫了whited函式。查後,發現whiten是對輸入資料按標準差做歸一化處理。e 經過whiten後 x i xis tand dev atio nx frac xi s tand dev atio nxi 與標準化不同的是,白化處理沒有減去均值。下面是按步驟實...