python numpy 切比雪夫插值



1、对g(x)100个切比雪夫节点之上分別使用PolynomialPolynomial.fit)和ChebyshevChebyshev.fit)进行插值,在[-1,1]区间上取1000个等距点对误差进行比较。g(x)= sin(x**2) + sin(x)**2, 其中x=(x - 1) * 5


代码实现:



import numpy as np


from numpy.polynomial import Chebyshev


def g(y):


    y=(x-1)*5


   return sin(y**2)+sin(y)**2


n=100


x1=np.linspace(-1,1,n)#polynomial正藏插值区间x2=Chebyshev.basis(n).roots()#Chebyshev进行插值


xd=np.linspace(-1,1,1000)


c1=Chebyshev.fit(x1,f(x1),n-1,domain=[-1,1])


c2=Chebyshev.fit(x2,f(x2),n-1,domain=[-1,1])


print(u"插值多样式的最大误差:")


print(u"等距离取样点:",abs(c1(xd)-f(xd)).max())


print(u"切比雪夫节点:",abs(c2(xd)-f(xd)).max())


输出结果:


插值多样式的最大误差:


等距离取样点: 90.63798229626987


切比雪夫节点:4.675603904047421e-09






猜你喜欢

转载自blog.csdn.net/qq_16668303/article/details/80620612
今日推荐