Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import scipy
  2. from scipy.optimize import minimize
  3.  
  4.  
  5. lista=[0.002,0.006,0.003,0.02,0.008,0.006,0.05]
  6.  
  7. def assign(k):
  8. return list(map(lambda x:(k*0.005 if x in np.arange(0,k*0.0025,0.001)
  9. else k*0.01 if x in np.arange(0.0025,k*0.005,0.001) else k*0.025 if x in
  10. np.arange(0.005,k*0.0125,0.001) else k*0.05), lista))
  11.  
  12. def constraint(k):
  13. return sum(assign(k))-0.32
  14.  
  15. def fun(k):
  16. return k
  17.  
  18. k0=0
  19. bnds=[(0,10)]
  20. cons={'type':'eq','fun':constraint}
  21. res=minimize(fun,k0,bounds=bnds,method='SLSQP',constraints=cons,options={'maxiter':2000})
  22. print(res)
  23.  
  24. message: 'Iteration limit exceeded'
  25.  
  26. lambda x:(k*0.005 if x in np.arange(0,k*0.0025,0.001)
  27. else k*0.01 if x in np.arange(0.0025,k*0.005,0.001) else k*0.025 if x in
  28. np.arange(0.005,k*0.0125,0.001) else k*0.05)
  29.  
  30. def assign1(x, k):
  31. if x in np.arange(0, k * 0.0025, 0.001):
  32. return k * .01
  33. if x in np.arange(0.0025, k * 0.005, 0.001):
  34. return k * .025
  35. ...
  36.  
  37. def assign1(x, k):
  38. if 0 <= x < k * .0025:
  39. return k * .01
  40. if k * .0025 <= x < k * .0050:
  41. return k * .025
  42. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement