切比雪夫多项式的计算

Evaluation of a Chebyshev polynomial

我需要构造一个函数,为我提供任意切比雪夫多项式在某一点的值。我有一个函数可以对勒让德多项式执行

def legendre_Pn(K, x):

    p0 = N.array(1.0)
    p1 = N.array(x)

    if K==0:
        return p0
    elif K==1:
        return p1
    else:
        for n in range(2,K+1):
            pn = (2*n-1)*x*p1/n-(n-1)*p0/n
            p0 = p1
            p1 = pn
        return pn

但是,由于 Chebyshev 不是使用前两个计算而是使用前一个计算,如 https://en.wikipedia.org/wiki/Chebyshev_polynomials, I can't do it as in the previous code. I have found the following function https://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.chebyshev.chebval.html#numpy.polynomial.chebyshev.chebval 中所示,但我认为它不能满足我的需要。

您可以为此使用 mpmath.chebyt(n, x),其中 n 指的是您要计算的切比雪夫多项式,而 x 是您要计算的点。

return 值是 class mpf 的一个真正的浮点数。可以找到更多详细信息 here

用法示例:

>>> chebyt(4, 0.5)
mpf('-0.5')