import numpy as np def func(x): return (x[0] + x[1] - 1)**2 + (x[0] - x[1] - 2)**2 def gradient(x): return np.array([4 * x[0] - 6, 4 * x[1] + 2]) def gradient_descent(initialization, step_size, iterations): x = initialization + step_size * (-gradient(initialization)) for i in range(iterations): x = x + step_size * (-gradient(x)) return x print(gradient_descent(np.array([0, 0]), 0.1, 5)) print(gradient_descent(np.array([0, 0]), 0.1, 100))