最速下降法算法代码python
时间: 2024-04-05 07:28:37 浏览: 84
最速下降法(也称为梯度下降法)是一种常用的优化算法,用于求解无约束优化问题。下面是一个简单的最速下降法算法的Python代码示例:
```python
import numpy as np
def gradient_descent(f, df, x0, learning_rate=0.01, epsilon=1e-6, max_iterations=1000):
x = x0
for i in range(max_iterations):
gradient = df(x)
if np.linalg.norm(gradient) < epsilon:
break
x = x - learning_rate * gradient
return x
# 示例函数 f(x) = x^2 + 2x + 1
def f(x):
return x**2 + 2*x + 1
# 示例函数 f(x) 的导数 df(x) = 2x + 2
def df(x):
return 2*x + 2
# 初始点 x0 = 0
x0 = 0
# 调用最速下降法求解最小值点
min_point = gradient_descent(f, df, x0)
print("最小值点:", min_point)
```
在上述代码中,`f` 是要优化的目标函数,`df` 是目标函数的导数,`x0` 是初始点,`learning_rate` 是学习率(步长),`epsilon` 是停止迭代的阈值,`max_iterations` 是最大迭代次数。算法通过不断更新参数 `x` 来逐步逼近目标函数的最小值点。
阅读全文