首页 > 解决方案 > 切比雪夫多项式的评估

问题描述

我需要构造一个函数,为我提供任何切比雪夫多项式在某一点的值。我有一个函数可以对 Legendre 多项式执行此操作

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

但是,由于切比雪夫不是使用前两个计算的,而是使用前一个计算的,如https://en.wikipedia.org/wiki/Chebyshev_polynomials所示,我不能像前面的代码那样做。我找到了以下函数https://docs.scipy.org/doc/numpy/reference/generated/numpy.polynomial.chebyshev.chebval.html#numpy.polynomial.chebyshev.chebval,但我不认为它会我需要的。

标签: pythonfunctionmathscipypolynomial-math

解决方案


您可以mpmath.chebyt(n, x)为此使用,其中n指的是您要评估的切比雪夫多项式,并且x是您要评估它的点。

返回值是类的mpf,一个真正的浮点数。更多细节可以在这里找到。

示例用法:

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

推荐阅读