


、defGD(x0, lr, N=10000, t=1e-5):#x0初始值,lr学习率,N最大迭代次数,t收敛阈值 x = x0 #初始位置 i =0 # y=x**2# 函数值表示当前高度 print(f"初始位置:x={x:.2f},高度y={y:.2f}") whileabs(2*x)> tandi<N: # 梯度绝对值大于阈值时继续迭代 g =2* x # 用导函数求梯度(坡度) # 输出当前下山状态 print(f"第{i}步:位置x={x:.7f}高度y={y:.11f}坡度{g:.6f}") x = x - lr * g # 迈出一步 i +=1 y = x **2 returnx, i# 开始下山x0 =5 # 从x=5的位置开始lr =0.1 # 学习率(步长)大小GD(x0, lr) # 从x0开始,学习率为lr
© 版权声明
文章版权归作者所有,未经允许请勿转载。
