fork download
  1. import numpy as np
  2. from scipy.optimize import minimize
  3.  
  4. a = np.array([1, 1, 1])
  5. b = np.array([[1, 0, 0],
  6. [1, 0, 1],
  7. [0, 1, 1],
  8. [1, 1, 1]])
  9. c = np.array([150, 300, 500, 650])
  10.  
  11. def f(x, b, c):
  12. return np.abs(c - np.sum(x*b, axis=1)).sum()
  13.  
  14. x0 = a
  15. print(minimize(f, x0, args=(b,c), method='Nelder-Mead'))
Success #stdin #stdout 0.15s 200704KB
stdin
Standard input is empty
stdout
 final_simplex: (array([[ 149.99982529,  247.53534411,  252.46478722],
       [ 149.99986037,  247.53536286,  252.46480255],
       [ 149.9997681 ,  247.53540142,  252.46481039],
       [ 149.9997295 ,  247.53535926,  252.46477228]]), array([ 102.46496193,  102.46499373,  102.46504229,  102.46504278]))
           fun: 102.46496192770888
       message: 'Optimization terminated successfully.'
          nfev: 289
           nit: 160
        status: 0
       success: True
             x: array([ 149.99982529,  247.53534411,  252.46478722])