fork(3) download
  1. import numpy as np
  2. from scipy.optimize import minimize
  3.  
  4. a = np.array([100, 200, 300])
  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.34s 200704KB
stdin
Standard input is empty
stdout
 final_simplex: (array([[ 149.99998103,  349.99999851,  150.00000599],
       [ 149.99999703,  349.99998   ,  150.0000438 ],
       [ 150.00004474,  350.00006937,  149.99994359],
       [ 150.00003133,  349.99993986,  150.00005352]]), array([  5.09146659e-05,   8.84176040e-05,   1.27072055e-04,
         1.47507893e-04]))
           fun: 5.0914665905565926e-05
       message: 'Optimization terminated successfully.'
          nfev: 190
           nit: 106
        status: 0
       success: True
             x: array([ 149.99998103,  349.99999851,  150.00000599])