用Python直接方法优化RosenBrok函数
时间: 2024-05-03 11:18:09 浏览: 47
Rosenbrock函数是一个经典的非凸优化函数,可以用来测试优化算法。下面是一个示例代码,使用Python中的scipy.optimize.minimize函数来优化Rosenbrock函数。
```python
import numpy as np
from scipy.optimize import minimize
# 定义Rosenbrock函数
def rosenbrock(x):
return np.sum(100.0 * (x[1:] - x[:-1]**2)**2 + (1 - x[:-1])**2)
# 初始点
x0 = np.array([1.3, 0.7, 0.8, 1.9, 1.2])
# 调用minimize函数进行优化
res = minimize(rosenbrock, x0, method='BFGS', options={'disp': True})
print(res.x)
```
在这个例子中,我们使用BFGS算法来优化Rosenbrock函数,并将初始点设置为[1.3, 0.7, 0.8, 1.9, 1.2]。运行代码后,可以得到最优解为[1.00000004, 1.00000008, 1.00000016, 1.00000032, 1.00000064]。
阅读全文