python - 切比雪夫多项式的评估
问题描述
我需要构造一个函数,为我提供任何切比雪夫多项式在某一点的值。我有一个函数可以对 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,但我不认为它会我需要的。
解决方案
您可以mpmath.chebyt(n, x)
为此使用,其中n
指的是您要评估的切比雪夫多项式,并且x
是您要评估它的点。
返回值是类的mpf
,一个真正的浮点数。更多细节可以在这里找到。
示例用法:
>>> chebyt(4, 0.5)
mpf('-0.5')
推荐阅读
- jira - 使用 Jira API issue.getComments() 为空
- outlook - Outlook Web 插件 - 事件处理程序
- powershell-3.0 - Powershell 中的 Get-ADComputer 失败并出现“参数上的标识属性为空或为空”错误
- c# - 将 ContentStringFormat 传递给 Datatemplate
- scala - 没有绑定实现 Slick DatabaseConfigProvider
- c# - C# 将 nameof() 值作为变量返回
- java - 如何开发具有不同透明度的 JFrame
- c# - ReSharper 警告可能的 System.NullReferenceException 尽管隐式空检查
- bluetooth-lowenergy - 通过 BLE 连接向 android 应用程序广播
- sql - SQL - 无论记录如何,如何选择最后 5 个值