本文简要介绍 python 语言中 scipy.interpolate.BSpline.design_matrix
的用法。
用法:
classmethod BSpline.design_matrix(x, t, k, extrapolate=False)#
将设计矩阵作为 CSR 格式的稀疏数组返回。
- x: 数组, 形状 (n,)
评估样条曲线的点。
- t: 数组, 形状 (nt,)
已排序的一维结数组。
- k: int
B-spline 度数。
- extrapolate: bool 或 ‘periodic’,可选
是否根据第一个和最后一个间隔进行推断或引发错误。如果‘periodic’,则使用周期性外推法。默认值为 False。
- design_matrix: csr_array对象
CSR 格式的稀疏矩阵,其中每行包含输入行的所有基本元素(第一行 = x[0], … 的基本元素,最后一行 = 基本元素 x[-1])。
参数 ::
返回 ::
注意:
在设计矩阵的每一行中,所有基本元素都在特定点进行评估(第一行 - x[0],...,最后一行 - x[-1])。
nt 是节点向量的长度:只要有 nt - k - 1 个基元素,nt 应不小于 2 * k + 2 才能具有至少 k + 1 个基元素。
越界 x 引发 ValueError。
例子:
为 B-spline 构建设计矩阵
>>> from scipy.interpolate import make_interp_spline, BSpline >>> import numpy as np >>> x = np.linspace(0, np.pi * 2, 4) >>> y = np.sin(x) >>> k = 3 >>> bspl = make_interp_spline(x, y, k=k) >>> design_matrix = bspl.design_matrix(x, bspl.t, k) >>> design_matrix.toarray() [[1. , 0. , 0. , 0. ], [0.2962963 , 0.44444444, 0.22222222, 0.03703704], [0.03703704, 0.22222222, 0.44444444, 0.2962963 ], [0. , 0. , 0. , 1. ]]
为某个节点向量构造一个设计矩阵
>>> k = 2 >>> t = [-1, 0, 1, 2, 3, 4, 5, 6] >>> x = [1, 2, 3, 4] >>> design_matrix = BSpline.design_matrix(x, t, k).toarray() >>> design_matrix [[0.5, 0.5, 0. , 0. , 0. ], [0. , 0.5, 0.5, 0. , 0. ], [0. , 0. , 0.5, 0.5, 0. ], [0. , 0. , 0. , 0.5, 0.5]]
这个结果等同于在稀疏格式中创建的结果
>>> c = np.eye(len(t) - k - 1) >>> design_matrix_gh = BSpline(t, c, k)(x) >>> np.allclose(design_matrix, design_matrix_gh, atol=1e-14) True
相关用法
- Python SciPy BSpline.basis_element用法及代码示例
- Python SciPy BSpline.integrate用法及代码示例
- Python SciPy BivariateSpline.ev用法及代码示例
- Python SciPy BPoly.from_derivatives用法及代码示例
- Python SciPy Bounds.residual用法及代码示例
- Python SciPy BivariateSpline.__call__用法及代码示例
- Python SciPy BinomTestResult.proportion_ci用法及代码示例
- Python SciPy BarycentricInterpolator.derivatives用法及代码示例
- Python SciPy interpolate.make_interp_spline用法及代码示例
- Python SciPy stats.anderson用法及代码示例
- Python SciPy ClusterNode.pre_order用法及代码示例
- Python SciPy stats.iqr用法及代码示例
- Python SciPy FortranFile.read_record用法及代码示例
- Python SciPy ndimage.correlate用法及代码示例
- Python SciPy special.exp1用法及代码示例
- Python SciPy special.expn用法及代码示例
- Python SciPy signal.czt_points用法及代码示例
- Python SciPy interpolate.krogh_interpolate用法及代码示例
- Python SciPy ndimage.morphological_gradient用法及代码示例
- Python SciPy distance.sokalmichener用法及代码示例
- Python SciPy linalg.eigvalsh_tridiagonal用法及代码示例
- Python SciPy linalg.cdf2rdf用法及代码示例
- Python SciPy csc_array.diagonal用法及代码示例
- Python SciPy fft.idctn用法及代码示例
- Python SciPy linalg.LaplacianNd用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.interpolate.BSpline.design_matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。