numpy.polynomial#
一个用于高效处理多项式的子包。
在该子包的文档中,“有限幂级数”,即多项式(也简称为“级数”),由一个一维 numpy 数组表示,该数组包含按项的次数从低到高排列的多项式系数。例如,array([1,2,3]) 表示 P_0 + 2*P_1 + 3*P_2,其中 P_n 是适用于特定模块的 n 阶基多项式,例如 polynomial(它“封装”了“标准”基)或 chebyshev。为了获得最佳性能,多项式的所有操作(包括在自变量处的求值)均作为系数的操作来实现。有关特定模块的其他信息,请参见相关模块的 docstring。
本包为六种不同的多项式分别提供了便利类
名称 |
提供 |
|---|---|
幂级数 |
|
切比雪夫级数 |
|
勒让德级数 |
|
拉盖尔级数 |
|
埃尔米特级数 |
|
埃尔米特 E 级数 |
这些便利类为创建、操作以及使用不同基的多项式拟合数据提供了一致的接口。便利类是 polynomial 包的首选接口,并可从 numpy.polynomial 命名空间中获取。这消除了导航到相应子模块的必要,例如使用 np.polynomial.Polynomial 或 np.polynomial.Chebyshev,而无需分别使用 np.polynomial.polynomial.Polynomial 或 np.polynomial.chebyshev.Chebyshev。与每个多项式类型子模块中定义的类型特定函数相比,这些类提供了更一致、更简洁的接口。例如,要使用数组 xdata 和 ydata 给出的数据拟合次数为 1 的切比雪夫多项式,fit 类方法
>>> from numpy.polynomial import Chebyshev
>>> xdata = [1, 2, 3, 4]
>>> ydata = [1, 4, 9, 16]
>>> c = Chebyshev.fit(xdata, ydata, deg=1)
优于 np.polynomial.chebyshev 模块中的 chebyshev.chebfit 函数
>>> from numpy.polynomial.chebyshev import chebfit
>>> c = chebfit(xdata, ydata, deg=1)
有关更多详细信息,请参见 使用便利类。
便利类#
以下列出了表示各种多项式的所有类所共有的各种常量和方法。在下文中,术语 Poly 代表任何便利类(例如 Polynomial、Chebyshev、Hermite 等),而小写的 p 代表多项式类的实例。
常量#
Poly.domain– 默认定义域Poly.window– 默认窗口Poly.basis_name– 用于表示基的字符串Poly.maxpower– 允许p**n成立的最大值n
创建#
创建多项式实例的方法。
Poly.basis(degree)– 给定次数的基多项式Poly.identity()–p,其中对于所有x都有p(x) = xPoly.fit(x, y, deg)– 次数为deg的p,其系数由对数据x,y的最小二乘拟合确定Poly.fromroots(roots)– 具有指定根的pp.copy()– 创建p的副本
转换#
将一种多项式实例转换为另一种的方法。
p.cast(Poly)– 将p转换为Poly类型的实例p.convert(Poly)– 将p转换为Poly类型的实例,或在domain(定义域)和window(窗口)之间进行映射
微积分#
p.deriv()– 对p求导p.integ()– 对p进行积分
验证#
Poly.has_samecoef(p1, p2)– 检查系数是否匹配Poly.has_samedomain(p1, p2)– 检查定义域是否匹配Poly.has_sametype(p1, p2)– 检查类型是否匹配Poly.has_samewindow(p1, p2)– 检查窗口是否匹配
杂项#
p.linspace()– 返回domain内等间距点处的x, p(x)p.mapparms()– 返回domain和window之间线性映射的参数。p.roots()– 返回p的根。p.trim()– 移除末尾的系数。p.cutdeg(degree)– 将p截断为给定次数p.truncate(size)– 将p截断为给定大小
配置#
设置多项式字符串表示的默认格式。 |