def J(x):
return (x - 2) ** 2 + 1#假设函数为(x-2)^2-1
def dJ(x):
return 2 * x - 4#求J(x)的导数
x = 1.0
alpha = 0.01#学习率
extreme = 1e-8
while True:
last_x = x
x = last_x - alpha * dJ(last_x)
if abs(J(x) - J(last_x)) < extreme:
break
print(x)
print(J(x))
csdn上找的有关梯度下降法的简单代码
我只能简单地读一读
还不能用python实现