我想通過使用Simplex算法(scipy.optimize.fmin)的python實現來最小化卡方損失函數來擬合數據的4參數(a,g,N和k)模型。初步模擬表明每個參數的下列範圍:a = [5,50],g = [0.05,1.5],N = [5,200]和k = [0,0.05]。scipy.optimize.fmin(Simplex)如何處理與不同大小相關的參數?
看起來像scipy.optimize.fmin函數將參數視爲它們都在相同的範圍內(推測爲[0,1])。我應該重新調整它們嗎?下面是我的代碼:
#determine starting point (x0) for each parameter
a = np.random.uniform(5,50)
g = np.random.uniform(0.05, 1.5)
N = np.random.uniform(5, 200)
k = np.random.uniform(0, 0.05)
x0 = np.array ([a, g, N, k]) #initial guess for SIMPLEX
xopt = fmin (chis, x0, maxiter=1000)#call Simplex
'chis'函數是否自制?如果是這樣的話,我會通過使它們相對而不是絕對的來重新調整最小化的目標。我的意思是使用變化而不是差異。 – Kanak
絕對的,chis功能是自制的。如有必要,我可以提供代碼。你可以再詳細一點嗎? 「你的意思是什麼」與變異一起工作? – user1363251
是什麼讓你想出這個問題?例如,當最小化時你有什麼結果? – Kanak