scipy.optimize 求解非線性Rosenbrock最優化問題 python

利用python軟件編程求解非線性Rosenbrock最優化問題
minf(x,y)=(1x)2+100(yx2)2min f(x, y) = (1-x)^{2}+100(y-x^{2})^{2}

2x2-2\leq x \leq 2

1y3-1\leq y \leq 3

程序,如下

from scipy.optimize import minimize
fun = lambda x: (1 - x[0]) ** 2 + 100 * (x[1] - x[0] ** 2) ** 2
bnds = ((-2, 2), (-1, 3))
res = minimize(fun, (2, 0), method='SLSQP', bounds=bnds)
print(res.x)

結果

[0.99989094 0.99980692]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章