#! /usr/local/bin/python3.6"""Interpolation with Newton method"""importsysimporttracebackclassInterpolateNewton:X=[0.0,2.0,3.0,5.0,8.0]Y=[0.8,3.2,2.8,4.5,1.9]def__init__(self):self.n=len(self.X)defcompute(self):""" Computation of interpolation with Newton method """try:print(" x y")forainrange(int(self.X[-1])*2+1):t=0.5*aprint("{:7.2f}{:7.2f}".format(t,self.__interpolate(t)))exceptExceptionase:raisedef__interpolate(self,t):""" Interpoalation with Newton method :param float t """try:c=[0for_inrange(self.n)]w=[0for_inrange(self.n)]foriinrange(0,self.n):w[i]=self.Y[i]forjinreversed(range(i)):w[j]=(w[j+1]-w[j])/(self.X[i]-self.X[j])c[i]=w[0]s=c[self.n-1]foriinreversed(range(self.n-1)):s=s*(t-self.X[i])+c[i]returnsexceptExceptionase:raiseif__name__=='__main__':try:obj=InterpolateNewton()obj.compute()exceptExceptionase:traceback.print_exc()sys.exit(1)