梯度下降法python实现fxy
时间: 2023-09-25 14:12:39 浏览: 50
梯度下降法是一种常用的优化算法,用于求解函数的最小值。在Python中,可以使用NumPy库进行数值计算,实现梯度下降法的代码如下:
```python
import numpy as np
# 定义函数 f(x, y)
def f(x, y):
return x**2 + y**2
# 定义函数 f(x, y) 对 x 的偏导数
def df_dx(x, y):
return 2*x
# 定义函数 f(x, y) 对 y 的偏导数
def df_dy(x, y):
return 2*y
# 梯度下降法求最小值点
def gradient_descent(x_start, y_start, learning_rate, num_iterations):
x = x_start
y = y_start
for i in range(num_iterations):
dx = df_dx(x, y)
dy = df_dy(x, y)
x -= learning_rate * dx
y -= learning_rate * dy
return x, y
# 设置初始点、学习率和迭代次数
x_start = 1
y_start = 1
learning_rate = 0.1
num_iterations = 100
# 调用梯度下降法函数
min_point = gradient_descent(x_start, y_start, learning_rate, num_iterations)
# 打印最小值点
print("最小值点:", min_point)
```
上述代码中,首先定义了目标函数 `f(x, y)` 和其对 `x` 和 `y` 的偏导数函数 `df_dx(x, y)` 和 `df_dy(x, y)`。然后,通过梯度下降法函数 `gradient_descent` 进行迭代求解最小值点。最后,打印出最小值点的结果。
注意:这里只是一个简单的示例,实际应用中可能需要根据具体情况调整学习率和迭代次数等参数。