我想通过使用 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 函数将参数视为它们都在同一范围内(大概是 [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