def METHOD_NAME(self, state, time, parameters):
    """ See :meth:`pints.ToyModel.jacobian()`. """
    m, p1, p2 = state
    P0, v, k1, h = parameters
    k_deg = self._kdeg
    p2_over_p0 = p2 / P0
    p2_over_p0_h = p2_over_p0**h
    one_plus_p2_expression_sq = (1 + p2_over_p0_h)**2
    ret = np.zeros((self.n_states(), self.n_states()))
    ret[0, 0] = -k_deg
    ret[0, 1] = 0
    ret[0, 2] = -h * p2_over_p0**(h - 1) / (P0 * one_plus_p2_expression_sq)
    ret[1, 0] = v
    ret[1, 1] = -k1 - k_deg
    ret[1, 2] = 0
    ret[2, 0] = 0
    ret[2, 1] = k1
    ret[2, 2] = -k_deg
    return ret