input: Write a function that implements the Gradient Descent Algorithm to find the minimum of a linear regression cost function. The function should take in input parameters x, y, learning_rate, and iterations, and return the values of m and b that minimize the cost.
  
  assert gradient_descent([1, 2, 3, 4, 5], [5, 7, 9, 11, 13], learning_rate=0.01, iterations=100) == (2.0, 3.0)
  assert gradient_descent([1, 2, 3], [2, 4, 6], learning_rate=0.01, iterations=50) == (2.0, 0.0)
  assert gradient_descent([1], [3], learning_rate=0.01, iterations=10) == (2.0, 1.0)
output: def gradient_descent(x, y, learning_rate, iterations):
      m, b = 0, 0
      n = len(x)
      for _ in range(iterations):
          y_pred = m * x + b
          dm = (-2/n) * sum(x * (y - y_pred))
          db = (-2/n) * sum(y - y_pred)
          m -= learning_rate * dm
          b -= learning_rate * db
      return m, b