from sympy import * import numpy as np from scipy.optimize import minimize from sympy import * import numpy as np from scipy.optimize import minimize "D- ( )" D=np.array([[9.889, 11.603,11.612, 12.721,11.453,12.102], [12.517, 13.25,12.947,12.596,12.853,13.036], [12.786, 12.822,15.447,14.452,15.143,16.247], [11.863, 12.114,13.359,13.437,11.913,15.300], [11.444, 13.292,13.703,11.504,13.406,15.255], [14.696, 15.946,16.829,17.698,16.051,17.140]],np.float64) d= np.zeros([6,1])# m,n= D.shape# for j in np.arange(0,n): for i in np.arange(0,m): d[j,0]=d[j,0]+D[i,j] d=d/n print(" 1-6 : \n %s"%d)
x1,x2,x3,x4,x5,x6,x7,x8,p,q,w=symbols(' x1 x2 x3 x4 x5 x6 x7 x8 pqw' , float= True) v1=Matrix([x1,x2,x3,x4,x5,x6]) v2=v1.T w=0 for i in np.arange(0,m): for j in np.arange(0,n): w=w+v1[p.subs({p:i}),q.subs({q:0})]*v2[p.subs({p:0}),q.subs({q:j})]*CV[p.subs({p:i}),q.subs({q:j})] print(" ( ):\n%s"%w)
def objective(x):# x1=x[0];x2=x[1];x3=x[2]; x4=x[3]; x5=x[4]; x6=x[5] return 2.117*x1**2 + 3.546*x1*x2 + 4.512*x1*x3 + 4.694*x1*x4 + 4.154*x1*x5 + 3.95*x1*x6\ + 1.903*x2**2 + 3.882*x2*x3 + 4.098*x2*x4 + 3.776*x2*x5 + 3.202*x2*x6 + 2.901*x3**2 \ + 5.574*x3*x4 + 5.402*x3*x5 + 5.522*x3*x6 + 3.935*x4**2 + 4.928*x4*x5 + 4.63*x4*x6 \ + 2.723*x5**2 + 4.728*x5*x6 + 3.067*x6**2 def constraint1(x):# -1 return x[0]+x[1]+x[2]+x[3]+x[4]+x[5]-1.0 def constraint2(x): # return d[0,0]*x[0] + d[1,0]*x[1] + d[2,0]*x[2] + d[3,0]*x[3] + d[4,0]*x[4]+ d[5,0]*x[5] - 13.25 x0=[1,1,0,0,0,1]# b=(0.0,1.0)# x bnds=(b,b,b,b,b,b)# () con1={'type':'ineq','fun':constraint1} # () con2={'type':'eq','fun':constraint2} # () cons=[con1,con2]# () sol=minimize(objective,x0,method='SLSQP',\ bounds=bnds,constraints=cons)# print(" -%s"%str(round(sol.fun,3))) print(" 1 - %s, - %s"%(round(sol.x[0],3),round(d[0,0]*sol.x[0],3))) print(" 2 - %s, - %s"%(round(sol.x[1],3),round(d[1,0]*sol.x[1],3))) print(" 3 - %s, - %s"%(round(sol.x[2],3),round(d[2,0]*sol.x[2],3))) print(" 4 - %s, - %s"%(round(sol.x[3],3),round(d[3,0]*sol.x[3],3))) print(" 5 - %s, - %s"%(round(sol.x[4],3),round(d[4,0]*sol.x[4],3))) print(" 6 - %s, - %s"%(round(sol.x[5],3),round(d[5,0]*sol.x[5],3)))
from sympy import * import numpy as np from scipy.optimize import minimize "D- ( )" D=np.array([[9.889, 11.603,11.612, 12.721,11.453,12.102], [12.517, 13.25,12.947,12.596,12.853,13.036], [12.786, 12.822,15.447,14.452,15.143,16.247], [11.863, 12.114,13.359,13.437,11.913,15.300], [11.444, 13.292,13.703,11.504,13.406,15.255], [14.696, 15.946,16.829,17.698,16.051,17.140]],np.float64) d= np.zeros([6,1])# m,n= D.shape# for j in np.arange(0,n): for i in np.arange(0,m): d[j,0]=d[j,0]+D[i,j] d=d/n print(" : \n %s"%d) CV= np.zeros([m,n]) for i in np.arange(0,m): for j in np.arange(0,n): x=np.array(D[0:m,j]).T y=np.array(D[0:m,i]).T X = np.vstack((x,y)) CV[i,j]=round(np.cov(x,y,ddof=0)[1,0],3) print(" CV: \n %s"%CV) x1,x2,x3,x4,x5,x6,x7,x8,p,q,w=symbols(' x1 x2 x3 x4 x5 x6 x7 x8 pqw' , float= True) v1=Matrix([x1,x2,x3,x4,x5,x6]) v2=v1.T w=0 for i in np.arange(0,m): for j in np.arange(0,n): w=w+v1[p.subs({p:i}),q.subs({q:0})]*v2[p.subs({p:0}),q.subs({q:j})]*CV[p.subs({p:i}),q.subs({q:j})] print(" ( ):\n%s"%w) def objective(x):# x1=x[0];x2=x[1];x3=x[2]; x4=x[3]; x5=x[4]; x6=x[5] return 2.117*x1**2 + 3.546*x1*x2 + 4.512*x1*x3 + 4.694*x1*x4 + 4.154*x1*x5 + 3.95*x1*x6\ + 1.903*x2**2 + 3.882*x2*x3 + 4.098*x2*x4 + 3.776*x2*x5 + 3.202*x2*x6 + 2.901*x3**2 \ + 5.574*x3*x4 + 5.402*x3*x5 + 5.522*x3*x6 + 3.935*x4**2 + 4.928*x4*x5 + 4.63*x4*x6 \ + 2.723*x5**2 + 4.728*x5*x6 + 3.067*x6**2 def constraint1(x):# -1 return x[0]+x[1]+x[2]+x[3]+x[4]+x[5]-1.0 def constraint2(x): # return d[0,0]*x[0] + d[1,0]*x[1] + d[2,0]*x[2] + d[3,0]*x[3] + d[4,0]*x[4]+ d[5,0]*x[5] - 13.25 x0=[1,1,0,0,0,1]# b=(0.0,1.0)# x bnds=(b,b,b,b,b,b)# () con1={'type':'ineq','fun': constraint1} # () con2={'type':'eq','fun': constraint2} # () cons=[con1,con2]# () sol=minimize(objective,x0,method='SLSQP',\ bounds=bnds,constraints=cons)# print(" -%s"%str(round(sol.fun,3))) print(" 1 - %s, - %s"%(round(sol.x[0],3),round(d[0,0]*sol.x[0],3))) print(" 2 - %s, - %s"%(round(sol.x[1],3),round(d[1,0]*sol.x[1],3))) print(" 3 - %s, - %s"%(round(sol.x[2],3),round(d[2,0]*sol.x[2],3))) print(" 4 - %s, - %s"%(round(sol.x[3],3),round(d[3,0]*sol.x[3],3))) print(" 5 - %s, - %s"%(round(sol.x[4],3),round(d[4,0]*sol.x[4],3))) print(" 6 - %s, - %s"%(round(sol.x[5],3),round(d[5,0]*sol.x[5],3)))
import numpy as np from scipy.optimize import minimize d=np.array( [[ 12.19916667], [ 13.17116667], [ 13.98283333], [ 13.73466667], [ 13.46983333], [ 14.84666667]]) def constraint2(x): x1=x[0];x2=x[1];x3=x[2]; x4=x[3]; x5=x[4]; x6=x[5] return 2.117*x1**2 + 3.546*x1*x2 + 4.512*x1*x3 + 4.694*x1*x4 + 4.154*x1*x5 \ + 3.95*x1*x6 + 1.903*x2**2 + 3.882*x2*x3 + 4.098*x2*x4 + 3.776*x2*x5 + 3.202*x2*x6 \ + 2.901*x3**2 + 5.574*x3*x4 + 5.402*x3*x5 + 5.522*x3*x6 + 3.935*x4**2 + 4.928*x4*x5 \ + 4.63*x4*x6 + 2.723*x5**2 + 4.728*x5*x6 + 3.067*x6**2-2 def constraint1(x): return x[0]+x[1]+x[2]+x[3]+x[4]+x[5]-1.0 def objective(x): return -(12.199*x[0] + 13.171*x[1] + 13.983*x[2] + 13.735*x[3] + 13.47*x[4]+ 14.847*x[5] ) x0=[1,1,1,1,1,1] b=(0.0,1.0) bnds=(b,b,b,b,b,b) con1={'type':'ineq','fun':constraint1} con2={'type':'eq','fun':constraint2} cons=[con1,con2] sol=minimize(objective,x0,method='SLSQP',\ bounds=bnds,constraints=cons) print(" -%s"%str(round(sol.fun,3))) print(" 1 - %s, - %s"%(round(sol.x[0],3),round(d[0,0]*sol.x[0],3))) print(" 2 - %s, - %s"%(round(sol.x[1],3),round(d[1,0]*sol.x[1],3))) print(" 3 - %s, - %s"%(round(sol.x[2],3),round(d[2,0]*sol.x[2],3))) print(" 4 - %s, - %s"%(round(sol.x[3],3),round(d[3,0]*sol.x[3],3))) print(" 5 - %s, - %s"%(round(sol.x[4],3),round(d[4,0]*sol.x[4],3))) print(" 6 - %s, - %s"%(round(sol.x[5],3),round(d[5,0]*sol.x[5],3)))
import numpy as np from scipy.optimize import minimize d=np.array( [[ 12.19916667], [ 13.17116667], [ 13.98283333], [ 13.73466667], [ 13.46983333], [ 14.84666667]]) x00=0.3;d0=10;dp=12.7 def objective(x):# x1=x[0];x2=x[1];x3=x[2]; x4=x[3]; x5=x[4]; x6=x[5] return 2.117*x1**2 + 3.546*x1*x2 + 4.512*x1*x3 + 4.694*x1*x4 + 4.154*x1*x5 + 3.95*x1*x6\ + 1.903*x2**2 + 3.882*x2*x3 + 4.098*x2*x4 + 3.776*x2*x5 + 3.202*x2*x6 + 2.901*x3**2 \ + 5.574*x3*x4 + 5.402*x3*x5 + 5.522*x3*x6 + 3.935*x4**2 + 4.928*x4*x5 + 4.63*x4*x6 \ + 2.723*x5**2 + 4.728*x5*x6 + 3.067*x6**2 def constraint1(x):# -1 return x[0]+x[1]+x[2]+x[3]+x[4]+x[5]-1.0+x00 def constraint2(x): # return d[0,0]*x[0] + d[1,0]*x[1] + d[2,0]*x[2] + d[3,0]*x[3] + d[4,0]*x[4]+ d[5,0]*x[5] - dp+x00*d0 x0=[1,1,1,1,1,1]# b=(-1.0,100.0)# x bnds=(b,b,b,b,b,b)# () con1={'type':'ineq','fun':constraint1} # () con2={'type':'eq','fun':constraint2} # () cons=[con1,con2]# () sol=minimize(objective,x0,method='SLSQP',\ bounds=bnds,constraints=cons)# print(" : %s"%str(round(sol.fun,3))) print(" 1 - %s, : %s"%(round(sol.x[0],3),round(d[0,0]*sol.x[0],3))) print(" 2 - %s, : %s"%(round(sol.x[1],3),round(d[1,0]*sol.x[1],3))) print(" 3 - %s, : %s"%(round(sol.x[2],3),round(d[2,0]*sol.x[2],3))) print(" 4 - %s, : %s"%(round(sol.x[3],3),round(d[3,0]*sol.x[3],3))) print(" 5 - %s, : %s"%(round(sol.x[4],3),round(d[4,0]*sol.x[4],3))) print(" 6 - %s, : %s"%(round(sol.x[5],3),round(d[5,0]*sol.x[5],3)))
import numpy as np from scipy.optimize import minimize x00=0.8;d0=10;rp=0.07 d=np.array( [[ 12.19916667], [ 13.17116667], [ 13.98283333], [ 13.73466667], [ 13.46983333], [ 14.84666667]]) def constraint2(x): x1=x[0];x2=x[1];x3=x[2]; x4=x[3]; x5=x[4]; x6=x[5] return 2.117*x1**2 + 3.546*x1*x2 + 4.512*x1*x3 + 4.694*x1*x4 + 4.154*x1*x5 \ + 3.95*x1*x6 + 1.903*x2**2 + 3.882*x2*x3 + 4.098*x2*x4 + 3.776*x2*x5 + 3.202*x2*x6 \ + 2.901*x3**2 + 5.574*x3*x4 + 5.402*x3*x5 + 5.522*x3*x6 + 3.935*x4**2 + 4.928*x4*x5 \ + 4.63*x4*x6 + 2.723*x5**2 + 4.728*x5*x6 + 3.067*x6**2-rp def constraint1(x): return x[0]+x[1]+x[2]+x[3]+x[4]+x[5]-1.0+x0 def objective(x): return -(d[0,0]*x[0] + d[1,0]*x[1] + d[2,0]*x[2] + d[3,0]*x[3] + d[4,0]*x[4]+ d[5,0]*x[5]+x00*d0) x0=[1,1,1,1,1,1] b=(-1.0,100.0) bnds=(b,b,b,b,b,b) con1={'type':'ineq','fun':constraint1} con2={'type':'eq','fun':constraint2} cons=[con1,con2] sol=minimize(objective,x0,method='SLSQP',\ bounds=bnds,constraints=cons) print(" : %s"%str(round(sol.fun,3))) print(" 1 - %s, : %s"%(round(sol.x[0],3),round(d[0,0]*sol.x[0],3))) print(" 2 - %s, : %s"%(round(sol.x[1],3),round(d[1,0]*sol.x[1],3))) print(" 3 - %s, : %s"%(round(sol.x[2],3),round(d[2,0]*sol.x[2],3))) print(" 4 - %s, : %s"%(round(sol.x[3],3),round(d[3,0]*sol.x[3],3))) print(" 5 - %s, : %s"%(round(sol.x[4],3),round(d[4,0]*sol.x[4],3))) print(" 6 - %s, - %s"%(round(sol.x[5],3),round(d[5,0]*sol.x[5],3)))
Source: https://habr.com/ru/post/341992/
All Articles