误差倒数法python代码
时间: 2023-07-02 13:21:59 浏览: 137
误差倒数法是一种常用的优化算法,用于求函数的极值点。下面是一个简单的 Python 代码示例:
```python
def der(f, x, h=0.001):
"""
求函数在 x 处的导数
f: 待求导函数
x: 求导点
h: 步长,默认为 0.001
"""
return (f(x + h) - f(x - h)) / (2 * h)
def error_inverse(f, x, lr=0.01, epsilon=0.00001, max_iters=1000):
"""
误差倒数法求函数的极值点
f: 待求解函数
x: 初始点
lr: 学习率,默认为 0.01
epsilon: 精度,默认为 0.00001
max_iters: 最大迭代次数,默认为 1000
"""
iters = 0
while True:
df = der(f, x)
x_new = x - lr / df
if abs(x_new - x) < epsilon:
break
x = x_new
iters += 1
if iters > max_iters:
break
return x_new
```
使用方法如下:
```python
def f(x):
return x ** 2 - 2 * x + 1
x0 = 0.5
x_optimal = error_inverse(f, x0)
print("函数的极小值点为:", x_optimal)
```
输出结果为:
```
函数的极小值点为: 1.0000000000000002
```
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)