一元函数最速下降法python代码举例
时间: 2023-10-13 08:06:53 浏览: 93
以下是一元函数最速下降法的Python代码示例:
``` python
import numpy as np
def f(x):
return (x-2)**2
def df_dx(x):
return 2*(x-2)
def epsilon_condition(x, epsilon):
return abs(df_dx(x)) <= epsilon
def step_size(x):
return abs(df_dx(x))
def gradient_descent(x, epsilon):
while not epsilon_condition(x, epsilon):
x = x - step_size(x)
return x
initial_x = np.random.random()
print("Initial guess: x = ", initial_x)
x_min = gradient_descent(initial_x, 0.01)
print("Minimum found at x = ", x_min)
```
该代码中定义了一个一元函数 $f(x)$,及其导数计算函数 $df\_dx(x)$。还有用于检查收敛精度的 $\epsilon$ 条件函数,用于计算每次迭代的步长的 step_size() 函数,以及实际的梯度下降函数 gradient_descent(x, epsilon)。
我们随机选择一个初始值 initial_x,利用梯度下降算法求得函数 $f(x)$ 的最小值,并将最小值输出。
阅读全文