code: def extrapolate_reciprocal(xs, ys, n, noise):
      
      if len(xs) > 4 and noise:
          y1 = (ys[-3] + ys[-4]) / 2
          y2 = (ys[-1] + ys[-2]) / 2
          x1 = (xs[-3] + xs[-4]) / 2
          x2 = (xs[-1] + xs[-2]) / 2
          try:
              b = (y1 - y2) / (1/x1**n - 1/x2**n)
              a = y2 - b / x2**n
          except IndexError:
              print_and_raise_error(xs, ys, 'extrapolate_reciprocal')
      else:
          try:
              b = (ys[-2] - ys[-1]) / (1/(xs[-2])**n - 1/(xs[-1])**n)
              a = ys[-1] - b / (xs[-1])**n
          except IndexError:
              print_and_raise_error(xs, ys, 'extrapolate_reciprocal')
      return [a, b, n]
docs: return the parameters such that a + b / x^n hits the last two data points