数学建模导论笔记1-线性规划模型

312 阅读1分钟

线性规划的本质:

1.问题是线性的
2.约束条件是线性的

矩阵运算的python实现:

#----------矩阵计算----------
import numpy as np
a=np.array([[1,2,3],[4,5,6]])
b=np.array([[1,2],[3,4],[5,6]])
c=np.array([1,2,3])
d=np.array([[9,8,7],[3,2,1]])
e=np.array([[1,2],[3,4]])
#矩阵加法
res_sum=a+d
print("矩阵加法:")
print(res_sum)
#矩阵放缩
res_fs=3*a
print("矩阵放缩:")
print(res_fs)
#矩阵乘法
res_cf=np.dot(a,b)
print("矩阵乘法:")
print(res_cf)
#元素乘
res_ysc=a*d
print("元素乘:")
print(res_ysc)
#转置
res_t=b.T
print("转置:")
print(res_t)
#逆矩阵
res_inv=np.linalg.inv(e)
print("逆矩阵:")
print(res_inv)
#行列式
res_det=np.linalg.det(e)
print("行列式:")
print(res_det)
#矩阵的秩
res_rank=np.linalg.matrix_rank(e)
print("矩阵的秩:")
print(res_rank)

运用numpy求一元方程组的解:

image.png

import numpy as np
from scipy.optimize import linprog
c=np.array([-2,-3,5]) 
Aeq=np.array([[1,1,1]])
beq=np.array([7])
A=np.array([[-2,5,-1],[1,3,1]])
b=np.array([-10,12])
x1,x2,x3=(0,None),(0,None),(0,None)
res=linprog(c,A,b,Aeq,beq,bounds=(x1,x2,x3))
print(res)

线性规划的矩阵形式:

image.png

线性规划的python求解:

image.png

import numpy as np
from scipy.optimize import linprog
c=np.array([-2,-3,5]) 
Aeq=np.array([[1,1,1]])
beq=np.array([7])
A=np.array([[-2,5,-1],[1,3,1]])
b=np.array([-10,12])
x1,x2,x3=(0,None),(0,None),(0,None)
res=linprog(c,A,b,Aeq,beq,bounds=(x1,x2,x3))
print(res)

其中fun为目的函数的最小值,x为x1,x2,x3的结果