司守奎《数学建模算法与应用》第二版 第三章非线性规划习题答案
3.1
假设工厂第一季度生产 x 1 x_1 x1台发动机,第二季度生产 x 2 x_2 x2台,第三季度生产 x 3 x_3 x3台,由题意得
min 花费的费用 = ∑ i = 1 3 ( 50 x i + 0.2 x i 2 ) + ( x 1 − 40 ) 4 + ( x 1 + x 2 − 40 − 60 ) 4 = ∑ i = 1 3 ( 50 x i + 0.2 x i 2 ) + 4 ( 2 x 1 + x 2 − 140 ) s . t . { x 1 + x 2 + x 3 = 180 x 1 + x 2 ≥ 100 x 1 ≥ 40 0 ≤ x i ≤ 100 , i = 1 , 2 , 3 \min\ 花费的费用=\sum\limits_{i=1}^{3}(50x_i+0.2x_i^2)+(x_1-40)4+(x_1+x_2-40-60)4\\=\sum\limits_{i=1}^{3}(50x_i+0.2x_i^2)+4(2x_1+x_2-140)\\ \begin{equation} s.t. \begin{cases} x_1+x_2+x_3= 180\\ x_1+x_2\geq 100\\ x_1\geq 40\\ 0\leq x_i \leq 100,&i=1,2,3 \end{cases} \end{equation} min 花费的费用=i=1∑3(50xi+0.2xi2)+(x1−40)4+(x1+x2−40−60)4=i=1∑3(50xi+0.2xi2)+4(2x1+x2−140)s.t.⎩
⎨
⎧x1+x2+x3=180x1+x2≥100x1≥400≤xi≤100,i=1,2,3
代码如下
from scipy.optimize import minimize, NonlinearConstraint
import numpy as np
if __name__=="__main__":
fun=lambda x:np.sum(50*x+0.2*x**2)+4*(2*x[0]+x[1]-140)
con_fun1 = lambda x:x[0]+x[1]+x[2]
con_fun2 = lambda x:x[0]+x[1]
con1 = NonlinearConstraint(con_fun1,