commit
b19bd9bef5
@ -0,0 +1,19 @@
|
||||
from matplotlib import pyplot as plt
|
||||
from numpy import ones , diag , c_ , zeros
|
||||
from scipy.optimize import linprog
|
||||
import time
|
||||
start = time.time()
|
||||
c=list( [-0.05,-0.27,-0.19,-0.185,-0.185])
|
||||
A=c_[zeros(4),diag([0.025,0.015,0.055,0.026])]
|
||||
Aeq = [[1,1.01,1.02,1.045,1.065]];beq=[[1]]
|
||||
a=0;aa=[];ss = []
|
||||
while a<=0.05:
|
||||
b=list(ones(4)*a)
|
||||
res= linprog(c,A,b,Aeq,beq)
|
||||
aa.append(a);ss.append(-res.fun)
|
||||
a=a+0.001
|
||||
end = time.time()
|
||||
print("花费时间:",end-start)
|
||||
plt.plot(aa,ss,"r*")
|
||||
plt.xlabel("$a$");plt.ylabel("$Q$",rotation=90)
|
||||
plt.savefig("figure5_1_1.png",dpi=500) ;plt.show()
|
@ -0,0 +1,26 @@
|
||||
import numpy as np
|
||||
from numpy import ones , zeros , c_,diag
|
||||
from scipy.optimize import linprog
|
||||
import matplotlib.pyplot as plt
|
||||
c = np.append(zeros(5).tolist(),[1]).tolist()
|
||||
print(c)
|
||||
A=np.append(zeros(4).reshape(4,1),diag([0.025,0.015,0.055,0.026]),axis=1)
|
||||
A=np.append(A,ones(4).reshape(4,1)*-1,axis=1).tolist()
|
||||
Aeq =[[1,1.01,1.02,1.045,1.065,0]] ;beq=[1]
|
||||
A.append([-0.05,-0.27,-0.19,0.185,-0.185,0])
|
||||
print(A)
|
||||
k=0.05;step = 0.005
|
||||
b=([0]*4);b.append(-k)
|
||||
print(b)
|
||||
kk=[];ss=[]
|
||||
while k<0.28:
|
||||
res= linprog(c,A,b,Aeq,beq)
|
||||
kk.append(k)
|
||||
ss.append(res.fun)
|
||||
print(res.fun)
|
||||
k+=step
|
||||
b[4]=-k
|
||||
plt.plot(kk,ss,'r*')
|
||||
plt.xlabel("$k$");plt.ylabel('$R$')
|
||||
plt.savefig("figures5_1_2.png",dpi=500);plt.show()
|
||||
|
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 115 KiB |
@ -0,0 +1,23 @@
|
||||
import time
|
||||
|
||||
import numpy as np
|
||||
from scipy.optimize import linprog
|
||||
start = time.time()
|
||||
c = [-110,-120,-130,-110,-115,150]
|
||||
c = (-np.array(c)).tolist()
|
||||
A=[[1,1,0,0,0,0],
|
||||
[0,0,1,1,1,0],
|
||||
[8.8,6.1,2.0,4.2,5.0,-6],
|
||||
[8.8,6.1,2.0,4.2,5.0,-3]
|
||||
]
|
||||
A[3]=(-np.array(A[3])).tolist()
|
||||
b=[[200],[250],[0],[0]]
|
||||
Aeq =[[1,1,1,1,1,-1]]
|
||||
beq = [[0]]
|
||||
LB= [0]*len(c)
|
||||
UB= [None]*len(c)
|
||||
bounds= tuple(zip(LB,UB))
|
||||
res = linprog(c,A,b,Aeq,beq,bounds)
|
||||
end = time.time()
|
||||
print("最优解:\n",res.x)
|
||||
print("目标函数最小值:\n",-res.fun)
|
Loading…
Reference in new issue