@staticmethod
def iterate_beta(beta, acceptance_ratio):
    """
        Apply algorithm from Hukushima but reversed to maintain one replica at T=1.

        Parameters
        ----------
        beta : ndarray
            Inverse temperature.
        acceptance_ratio : ndarray
            Estimate of acceptance ratio.

        Returns
        -------
        ndarray
            New beta.
        """
    assert len(acceptance_ratio) + 1 == len(beta)
    assert (acceptance_ratio <= 1).all()
    newBeta = beta.copy()
    avg = acceptance_ratio.mean()
    for i in range(len(beta) - 1, 0, -1):
        newBeta[i - 1] = newBeta[i] - (beta[i] - beta[i - 1]
            ) * acceptance_ratio[i - 1] / avg
    return newBeta
