我想通过使用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