Guest User

Untitled

a guest
Feb 23rd, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. import numpy as np
  2. from scipy.optimize import minimize
  3.  
  4.  
  5. def func(x):
  6. return ((x[0]*((0.2292 + x[1])/2)) + ((0.9-x[0])*((x[2] +
  7. x[1])/2))-0.08)
  8.  
  9.  
  10. def func_deriv(x):
  11. """ Derivative of objective function """
  12. dfdx0 = (0.2292 - x[2])/2
  13. dfdx1 = 0.89/2
  14. dfdx2 = (0.89 - x[0])/2
  15. return np.array([dfdx0, dfdx1, dfdx2])
  16.  
  17. cons = ({'type': 'ineq',
  18. 'fun': lambda x: np.array([x[1]-x[2]]),
  19. 'jac': lambda x: np.array([0.0, 1.0, -1.0])},
  20. {'type': 'ineq',
  21. 'fun': lambda x: np.array([0.2292-x[1]]),
  22. 'jac': lambda x: np.array([0.0, -1.0, 0.0])})
  23.  
  24. res = minimize(func, [0.43, 0.18, 0.10], jac=func_deriv,
  25. method='SLSQP',
  26. options={'disp': True, 'maxiter': 100})
Add Comment
Please, Sign In to add comment