- 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))