code: def _set_params(self):
          
          fit_poly = np.poly1d(self.eos_params)
          # the volume at min energy, used as the intial guess for the
          # optimization wrt volume.
          v_e_min = self.volumes[np.argmin(self.energies)]
          # evaluate e0, v0, b0 and b1
          min_wrt_v = minimize(fit_poly, v_e_min)
          e0, v0 = min_wrt_v.fun, min_wrt_v.x[0]
          pderiv2 = np.polyder(fit_poly, 2)
          pderiv3 = np.polyder(fit_poly, 3)
          b0 = v0 * np.poly1d(pderiv2)(v0)
          db0dv = np.poly1d(pderiv2)(v0) + v0 * np.poly1d(pderiv3)(v0)
          # db/dp
          b1 = - v0 * db0dv / b0
          self._params = [e0, b0, b1, v0]
docs: Use the fit polynomial to compute the parameter e0, b0, b1 and v0
          and set to the _params attribute.