input: Write a function to optimize a given multivariate function using scipy.optimize.minimize. The function should take a function and an initial guess as inputs and return the optimal point. If the inputs are invalid, return None.
  assert optimize_function(lambda x: x[0]**2 + x[1]**2, [1, 1])==[0.0, 0.0]
  assert optimize_function(lambda x: (x[0]-1)**2 + (x[1]+2)**2, [0, 0])==[1.0, -2.0]
  assert optimize_function(lambda x: x[0]**2 - 2*x[0]*x[1] + x[1]**2 + x[0], [0, 0])==[0.0, -0.0]
  assert optimize_function(None, [1, 1])==None
  assert optimize_function(lambda x: x[0]**2, None)==None
output: def optimize_function(func, initial_guess):
      if func is None or initial_guess is None:
          return None
      try:
          result = minimize(func, initial_guess)
          return result.x.tolist()
      except:
          return None