用梯度下降法实现y=x^2并绘制图像
时间: 2024-05-05 15:18:39 浏览: 162
可以的,梯度下降法可以用来求解函数的最小值或最大值,对于y=x^2这个函数,我们的目标是求最小值。我们可以初始化参数值,比如初始值为x=1,然后定义学习率为0.1,根据梯度下降算法公式:x = x - learning_rate * 2 * x,迭代更新参数值,直到满足停止条件。最后,我们可以使用matplotlib库绘制y=x^2的图像。下面是Python代码:
```
import numpy as np
import matplotlib.pyplot as plt
def gradient_descent(initial_x, learning_rate, epsilon):
x = initial_x
error = float('inf')
iterations = 0
while error > epsilon:
gradient = 2 * x
new_x = x - learning_rate * gradient
error = abs(new_x - x)
x = new_x
iterations += 1
print('Total iterations:', iterations)
return x
x = np.arange(-5, 6, 0.1)
y = x**2
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('y=x^2')
minimum_x = gradient_descent(initial_x=1, learning_rate=0.1, epsilon=1e-6)
minimum_y = minimum_x ** 2
plt.scatter(minimum_x, minimum_y, c='r')
plt.show()
```
当然,也可以使用更高级的优化算法,比如Adam、RMSprop、Adagrad等,来加速收敛。
阅读全文