用Python代码,写出使用BFGS算法求解当初始点(0,0)‘时,f(x)=(3/2)*(x1*x1)+(1/2)*x2*x2-x1*x2-2*x1的最小值
时间: 2024-10-20 19:16:20 浏览: 39
数学建模比赛常用代码python版
Broyden-Fletcher-Goldfarb-Shanno (BFGS)是一种常用的无约束优化算法,用于寻找目标函数的局部最小值。下面是一个简单的Python代码片段,使用了`scipy.optimize.minimize`库,该库封装了BFGS算法:
```python
from scipy.optimize import minimize
# 定义目标函数 f(x)
def objective_function(x):
x1, x2 = x
return 1.5 * x1**2 + 0.5 * x2**2 - x1 * x2 - 2 * x1
# 初始点
initial_point = [0, 0]
# 使用BFGS算法求最小值
solution = minimize(objective_function, initial_point, method='BFGS')
# 输出结果
optimal_x = solution.x
min_value = solution.fun
print(f"最小值坐标: {optimal_x}")
print(f"最小值: {min_value}")
阅读全文