Function is f(x,y)=x2+y2.
The gradient descent is (2x,2y).
The first (x,y) is (x0,y0)=(1,3) and the factor(α) is 0.1
(x1,y1)=(x0,y0)−α(x0,y0)
...
x = list()
y = list()
x0 = 1
y0 = 3
x.append(x0)
y.append(y0)
factor = 0.1
def gradient_descent_x(x):
return x - factor * 2 * x
def gradient_descent_y(y):
return y - factor * 2 * y
for i in range(1, 10):
tmp_x = gradient_descent_x(x[i-1])
tmp_y = gradient_descent_y(y[i-1])
x.append(tmp_x)
y.append(tmp_y)
print("x"+str(i).strip()+" =", x[i])
print("y"+str(i).strip()+" =", y[i])
print("")
x1 = 0.8 y1 = 2.4 x2 = 0.64 y2 = 1.92 x3 = 0.512 y3 = 1.536 x4 = 0.4096 y4 = 1.2288000000000001 x5 = 0.32768 y5 = 0.9830400000000001 x6 = 0.26214400000000004 y6 = 0.7864320000000001 x7 = 0.20971520000000005 y7 = 0.6291456000000001 x8 = 0.16777216000000003 y8 = 0.5033164800000001 x9 = 0.13421772800000004 y9 = 0.40265318400000005