1
我試圖找到一個函數Minimum of a function with BFGS method(第29頁的PDF文檔)爲什麼我沒有從BFGS中得到與在MATLAB中最小化的結果相同的結果?
的mimimum而且我沒有得到相同的結果中的鏈接報道的那些,我已經有和沒有嘗試雅各布人沒有運氣。任何幫助將不勝感激。
至今代碼:
import numpy as np
from scipy.optimize import minimize
def objective(x):
x1=x[0]
x2=x[1]
print ("x1: ",x1," ","x2: ",x2)
return pow(x1,4.0)-2*x2*pow(x1,2.0)+pow(x2,2.0)+pow(x1,2.0)-2.0*x1+5.0
def jacobiano(x):
x1=x[0]
x2=x[1]
jaco=np.zeros(2)
jaco[0]=4.0*x1-4.0*x2*x1+2.0*x1-2.0
jaco[1]=-2.0*pow(x1,2.0)+2.0*x2
print ("dx1: ",jaco[0]," ","dx2: ",jaco[1])
return jaco
x0=np.array([1.0,2.0], dtype=np.double)
print(objective(x0))
sol=minimize(objective,x0,method='BFGS',jac=jacobiano, options={'disp': True})
print(sol)
非常感謝您!當我不包括雅可比時,我期待着同樣的結果,爲什麼小數中有這樣的差異? –
準確度的差異可能是由於算法在每種語言中的實現方式,也可能是由於每種語言使用的數據類型。 – eyllanesc
謝謝!對於這個例子,你對Python中的數據類型有什麼建議嗎? –