code: def _initial_guess(self):
          
          a, b, c = np.polyfit(self.volumes, self.energies, 2)
          self.eos_params = [a, b, c]
  
          v0 = -b/(2*a)
          e0 = a*(v0**2) + b*v0 + c
          b0 = 2 * a * v0
          b1 = 4  # b1 is usually a small number like 4
  
          vmin, vmax = min(self.volumes), max(self.volumes)
  
          if not vmin < v0 and v0 < vmax:
              raise EOSError('The minimum volume of a fitted parabola is '
                             'not in the input volumes\n.')
  
          return e0, b0, b1, v0
docs: Quadratic fit to get an initial guess for the parameters.
  
          Returns:
              tuple: (e0, b0, b1, v0)