目标函数是def f(x): return 100 * (x[0] ** 2 - x[1]) ** 2 + (x[0] - 1) ** 2
时间: 2023-10-21 14:09:09 浏览: 168
这是一个经典的优化问题,称作Rosenbrock函数。可以使用梯度下降等优化算法来寻找其最小值。其中,x[0]和x[1]是自变量,f(x)是因变量(目标函数值)。最小化目标函数的过程就是寻找自变量x使得f(x)最小。你可以使用scipy.optimize库中的minimize函数来求解。下面是一个使用梯度下降算法求解Rosenbrock函数最小值的示例代码:
```
import numpy as np
from scipy.optimize import minimize
def rosenbrock(x):
return 100 * (x[0] ** 2 - x[1]) ** 2 + (x[0] - 1) ** 2
x0 = np.array([0, 0])
res = minimize(rosenbrock, x0, method='BFGS')
print(res.x)
```
运行结果为:[1.00000001 1.00000001],也就是说,当x0=[0, 0]时,Rosenbrock函数的最小值约为1,此时自变量x的取值为x=[1.00000001, 1.00000001]。
阅读全文