我确实有一个矩阵,在行中进行观察(在不同的pH下进行测量),数据点为列(浓度随时间变化)。因此,一行由一个pH的不同数据点组成。
我确实希望将ODE适合数据。所以我定义了一个成本函数,并想计算所有观察的平方和。取此矩阵的平方和应该如下:
res = y - yhat # calculate residuals
ssq = np.diag(np.dot(res.T,res)) # sum over the diagonal
是正确的吗?
答案 0 :(得分:18)
如果您将获取最后一个数组的总和,那将是正确的。 但它也不必要地复杂(因为非对角元素也是用np.dot计算的) 更快的是:
ssq = np.sum(res**2)
如果你想要每个实验的ssd,你可以这样做:
ssq = np.sum(res**2, axis=1)