用梯度下降法求解无约束优化问题,初始点为(-0.25,0.5),求解精度为0.001的python代码
时间: 2024-05-08 15:18:47 浏览: 75
以下是使用梯度下降法求解无约束优化问题的Python代码:
```python
import numpy as np
def func(x):
return (x[0] - 1) ** 2 + (x[1] + 2) ** 2
def grad(x):
return np.array([2 * (x[0] - 1), 2 * (x[1] + 2)])
def gradient_descent(x_start, learning_rate, max_iter, precision):
x = x_start
iteration = 0
while iteration < max_iter:
fx = func(x)
gx = grad(x)
if np.linalg.norm(gx) < precision:
break
x -= learning_rate * gx
iteration += 1
return x
x_start = np.array([-0.25, 0.5])
learning_rate = 0.1
max_iter = 1000
precision = 0.001
result = gradient_descent(x_start, learning_rate, max_iter, precision)
print("The minimum point is:", result)
```
在上面的代码中,我们首先定义了无约束优化问题的目标函数 `func(x)` 和梯度函数 `grad(x)`。 然后我们使用梯度下降算法 `gradient_descent` 求解无约束优化问题。参数 `x_start` 是初始点, `learning_rate` 是学习率, `max_iter` 是最大迭代次数, `precision` 是求解精度。最后输出得到的最小值点 `result`。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)