import numpy as np
from scipy.optimize import minimize
a = np.array([100, 200, 300])
b = np.array([[1, 0, 0],
[1, 0, 1],
[0, 1, 1],
[1, 1, 1]])
c = np.array([150, 300, 500, 650])
def f(x, b, c):
return np.abs(c - np.sum(x*b, axis=1)).sum()
x0 = a
print(minimize(f, x0, args=(b,c), method='Nelder-Mead'))
aW1wb3J0IG51bXB5IGFzIG5wCmZyb20gc2NpcHkub3B0aW1pemUgaW1wb3J0IG1pbmltaXplCgphID0gbnAuYXJyYXkoWzEwMCwgMjAwLCAzMDBdKQpiID0gbnAuYXJyYXkoW1sxLCAwLCAwXSwKICAgICAgICAgICAgICBbMSwgMCwgMV0sCiAgICAgICAgICAgICAgWzAsIDEsIDFdLAogICAgICAgICAgICAgIFsxLCAxLCAxXV0pCmMgPSBucC5hcnJheShbMTUwLCAzMDAsIDUwMCwgNjUwXSkKCmRlZiBmKHgsIGIsIGMpOgogICAgcmV0dXJuIG5wLmFicyhjIC0gbnAuc3VtKHgqYiwgYXhpcz0xKSkuc3VtKCkKCngwID0gYQpwcmludChtaW5pbWl6ZShmLCB4MCwgYXJncz0oYixjKSwgbWV0aG9kPSdOZWxkZXItTWVhZCcpKQ==
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])