我正在尝试拟合转移概率矩阵的参数(Leslie模型在生态学中)。我对Leslie模型的功能是:
def leslie(x, f3, p0, p1, p2):
Alist = [[0, 0, 0, f3], [p0, 0, 0, 0], [0, p1, 0, 0], [0, 0, p2, 0]]
A = np.array(Alist)
X = np.array(x).T
return list(np.dot(A, X))
我正在尝试将scipy
的{{1}}用于x和y值的数据,其中每个值是4个度量的列表(x是第1年,y是第2年数据) 。前几行数据如下所示:
curve_fit
我在打电话:
ABUNDY1 ABUNDY2
0 [516.819166236, 10.0, 15.0, 40.0] [3756.96048518, 2.0, 1.0, 1.0]
1 [16454.2226677, 25.0, 60.0, 50.0] [23511.7855689, 50.0, 35.0, 12.0]
2 [14415.487266, 20.0, 8.0, 2.0] [248.215580071, 30.0, 2.0, 3.0]
3 [2477.19325817, 5.0, 5.0, 2.0] [321.324366027, 10.0, 7.0, 4.0]
4 [43.2506601374, 15.0, 20.0, 10.0] [1651.83654693, 15.0, 10.0, 4.0]
我得到res = scipy.optimize.curve_fit(leslie, data.ABUNDY1, data.ABUNDY2)
。当我在曲线拟合之外尝试它时,我写的ValueError: objects not aligned
函数似乎没有问题。我认为我的问题是数组维度没有正确匹配,但是我在查看错误时遇到了问题。