约束二阶导数时,Scipy CubicSpline外推如何工作?

特诺伍德

运行以下代码:

import matplotlib.pyplot as plt
import numpy as np
import scipy as sp
import scipy.interpolate

x = np.arange(-3, 4)
y = xs**2
spline = sp.interpolate.CubicSpline(x, y, bc_type=((2, 0), (2, 0)))

x2 = np.arange(-10, 11)
plt.plot(x2, spline(x2), label="y2")
plt.plot(x2, spline(x2, 1), label="y2'")
plt.plot(x2, spline(x2, 2), label="y2''")
plt.plot(x2, spline(x2, 3), label="y2'''")
plt.legend()
plt.show()

在外推的尾巴向下弯曲时产生一个估计:

样条图

为什么尾巴在外推区域向下弯曲?我的直觉是,估计值将合理地近似样条曲线的内部区域上的抛物线,而尾值是线性外推的结果。

另外,我了解到通过施加“自然”样条曲线边界条件,我绝对无法满足该特定函数的要求,但是我试图理解该bc_type参数的工作原理。

用户名

该文件说:

根据第一个和最后一个间隔外推到边界点

例如,对于x <-3所做的所有操作都使用与-3 <x <-2(结之间最左边的间隔)所用的公式相同的公式。同样,x> 4的公式与3 <x <4所用的公式相同。

这些将是一些三次多项式,可以插值它们应该插值的两个值,但不能期望它们遵循函数中的任何大规模模式。

简而言之,这种推断是没有用的。样条线没有,也永远不会用作外推工具。

InterpolatedUnivariateSpline有一个更合理的外推选项,即通过最接近的边界值(通过水平线扩展图形)。但是,如果您想要某种实际上遵循数据大规模行为的内容,请不要查看scipy.interpolate模块:而是curve_fit从中检出optimization

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

n维数组的numpy二阶导数

从scipy.special开始的fadeva函数的二阶导数

Python中的二阶导数-scipy / numpy / pandas

根据二阶导数计算的曲线的SIMD优化

隐式微分-使用Matlab的二阶导数

如何使用参数微分获得二阶导数?

凯拉斯的二阶导数

如何替换字符串以避免进行二阶替换?

使用有限差分计算一阶和二阶导数时,边界处存在较大误差

scipy.interpolate.CubicSpline的外推如何在数学上起作用?

如何在Python中绘制耦合的非线性二阶ODE的二阶导数?

Keras:使用模型的一阶和二阶导数之和作为最终输出

如何获得图像的一阶和二阶导数矩阵

低通滤波器从熊猫数据框中获取数据的二阶导数

Julia中的二阶时滞微分方程

如何在神经网络的输出层计算二阶导数?

递归找到二阶导数

如何在Python Peewee ORM中选择二阶ForeignKeyField的位置?

如何在libreOffice Math中插入Tensor二阶表示法?

数值计算二阶导数时的大误差

如果我有 5 个预测变量,如何在 MATLAB 中创建二阶线性模型。?

python中如何解决二阶常微分方程?在两个二阶微分中的每一个中都有两个变量?

使用 Pandas .diff() 从时间序列计算二阶导数

如何提高浮点二阶导数计算的精度?

计算插值数据的二阶导数

SciPy:solve_bvp 问题二阶差异。等式

如何从图中获得二阶导数/倾角或生成最佳 eps 值

如何使用 Ceres Solver 库拟合二阶多元多项式(3D 表面)

如何在 C# 中计算一维数组的二阶导数