input: Write a python function to minimize an objective function with given constraints using scipy.optimize.minimize.
  assert minimize_objective([1, 4, 10, 1]) == {'x1': 1.0, 'x2': 4.0, 'x3': 10.0, 'x4': 1.0, 'fun': 24.0}
  assert minimize_objective([0.5, 0.5, 0.5, 0.5]) == {'x1': 0.5, 'x2': 0.5, 'x3': 0.5, 'x4': 0.5, 'fun': 1.375}
output: from scipy.optimize import minimize
  
  def minimize_objective(init_vals):
      def objective(x):
          return x[0]**2 + x[1]**2 + x[2]**2 + x[3]**2 + 2*x[0] + 4*x[1] + 6*x[2] + 8*x[3]
  
      constraints = [
          {'type': 'eq', 'fun': lambda x: x[0] - init_vals[0]},
          {'type': 'eq', 'fun': lambda x: x[1] - init_vals[1]},
          {'type': 'eq', 'fun': lambda x: x[2] - init_vals[2]},
          {'type': 'eq', 'fun': lambda x: x[3] - init_vals[3]}
      ]
  
      result = minimize(objective, init_vals, constraints=constraints)
      return {'x1': result.x[0], 'x2': result.x[1], 'x3': result.x[2], 'x4': result.x[3], 'fun': result.fun}