用梯度下降法求解无约束优化问题,初始点为(0,0),求解精度为0.001的python代码
时间: 2024-05-15 13:19:10 浏览: 129
梯度下降法,python代码.py
可以使用Python中的scipy.optimize.minimize函数,结合梯度下降法来求解无约束优化问题。具体的代码实现如下:
```python
import numpy as np
from scipy.optimize import minimize
# 无约束优化函数
def f(x):
return x[0]**2 + x[1]**2
# 梯度函数
def grad_f(x):
return np.array([2*x[0], 2*x[1]])
# 初始点
x0 = [0, 0]
# 最小化目标函数
res = minimize(f, x0, method='BFGS', jac=grad_f, tol=1e-3)
# 输出结果
print(res)
```
在这段代码中,我们用到了`f(x)`和`grad_f(x)`两个函数,分别表示目标函数和目标函数的梯度。在scipy.optimize.minimize函数中,`method='BFGS'`表示使用拟牛顿法中的BFGS方法求解优化问题,`jac=grad_f`表示使用梯度函数来计算梯度。最后的`tol`参数表示求解精度,这里设置为0.001。
以上是求解无约束优化问题,如果您的问题是其他类型的优化问题,可以根据具体情况调整代码。
阅读全文