# 首先随意设置自变量x和y的初始值
x = 2.1
y = 1.1
# 设置迭代轮数
n = 100
# 设置迭代速率
alpha = 0.05 # alpha用来控制一小步的大小
# 实现梯度下降
# 梯度下降是一个迭代的过程,这里对于for循环
for i in range(1, n + 1):
# 首先求出f(x,y)关于变量x和y的偏导数gx和gy,这里是手动求出的
# gx和gy是用来控制迭代的方向
gx = x * 2
gy = y * 2
# 在循环中,会一步一步调整自变量的取值,让函数不断减小
x = x - alpha * gx
y = y - alpha * gy
# 计算后,自变量x,y,沿着负梯度方向,前进一小步
print(f'迭代轮数{i},'
f'自变量x={x:.3f},'
f'自变量y={y:.3f},'
f'函数值f(x,y)={x ** 2 + y ** 2:.3f}')