import numpy as np
from scipy.optimize import minimize
a = np.array([1, 1, 1])
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'))
aW1wb3J0IG51bXB5IGFzIG5wCmZyb20gc2NpcHkub3B0aW1pemUgaW1wb3J0IG1pbmltaXplCgphID0gbnAuYXJyYXkoWzEsIDEsIDFdKQpiID0gbnAuYXJyYXkoW1sxLCAwLCAwXSwKICAgICAgICAgICAgICBbMSwgMCwgMV0sCiAgICAgICAgICAgICAgWzAsIDEsIDFdLAogICAgICAgICAgICAgIFsxLCAxLCAxXV0pCmMgPSBucC5hcnJheShbMTUwLCAzMDAsIDUwMCwgNjUwXSkKCmRlZiBmKHgsIGIsIGMpOgogICAgcmV0dXJuIG5wLmFicyhjIC0gbnAuc3VtKHgqYiwgYXhpcz0xKSkuc3VtKCkKCngwID0gYQpwcmludChtaW5pbWl6ZShmLCB4MCwgYXJncz0oYixjKSwgbWV0aG9kPSdOZWxkZXItTWVhZCcpKQ==
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])