<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def uncertainty_eigenvalues(self):
 """Estimate of the element-wise asymptotic standard deviation in the model eigenvalues. Returns ------- sigma_eigs : np.array, shape=(n_timescales+1,) The estimated symptotic standard deviation in the eigenvalues. References .. [1] Hinrichs, Nina Singhal, and Vijay S. Pande. "Calculation of the distribution of eigenvalues and eigenvectors in Markovian state models for molecular dynamics." J. Chem. Phys. 126.24 (2007):
 244101. """

        if self.reversible_type is None:
            raise NotImplementedError('reversible_type must be "mle" or "transpose"')

        n_timescales = min(self.n_timescales if self.n_timescales is not None
                           else self.n_states_ - 1, self.n_states_ - 1)

        u, lv, rv = self._get_eigensystem()

        sigma2 = np.zeros(n_timescales + 1)
        for k in range(n_timescales + 1):
            dLambda_dT = np.outer(lv[:, k], rv[:, k])
            for i in range(self.n_states_):
                ui = self.countsmat_[:, i]
                wi = np.sum(ui)
                cov = wi*np.diag(ui) - np.outer(ui, ui)
                quad_form = dLambda_dT[i].dot(cov).dot(dLambda_dT[i])
                sigma2[k] += quad_form / (wi**2*(wi+1))
        return np.sqrt(sigma2)