- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当
spline = UnivariateSpline(x, y, bbox=[0,1], k=3.0,s=0.0)
对比
spline = UnivariateSpline(x, y, k=3.0,s=0.0)
,后者产生的结果明显低于第一个。所以我想知道 bbox 参数实际上是做什么的? An example of my x vector would be [0.0518429, 0.102736, 0.153367, 0.254166, 0.354551, 0.404618, 0.454606, 0.479576, 0.504523, 0.529457, 0.554374, 0.604159, 0.653876, 0.753149, 0.85219, 0.901613, 0.970617]
所以 x 包含在 (0,1) 内
最佳答案
TL;DR:您正在整合两个不同的样条曲线。
bbox
参数本身的作用与 jar 上所说的完全一样,https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.UnivariateSpline.html
bbox : (2,) array_like, 可选
指定近似区间边界的 2 序列。如果没有
(默认),bbox=[x[0], x[-1]]。
措辞有点含糊,我同意。一个简单的例子有助于:
In [1]: from scipy.interpolate import UnivariateSpline
In [2]: import numpy as np
In [4]: x = np.array([0.2, 0.4, 0.6, 0.8])
In [5]: y = x**4
In [6]: s1 = UnivariateSpline(x, y, s=0)
In [7]: s1.get_coeffs()
Out[7]: array([ 0.0016, 0.0176, 0.0096, 0.4096])
In [8]: s1.get_knots()
Out[8]: array([ 0.2, 0.8])
现在,指定 bbox
更改样条:
In [15]: s2 = UnivariateSpline(x, y, s=0, bbox=[0, 1])
In [16]: s2.get_knots()
Out[16]: array([ 0., 1.])
因此,如果您在不依赖外推的情况下将每个样条整合到它们的基区间内,一切似乎都很好:
In [23]: s2.integral(0, 1)
Out[23]: 0.19493333333333332
In [24]: s1.integral(0.2, 0.8)
Out[24]: 0.06576000000000003
In [25]: (0.8**5 - 0.2**5) / 5
Out[25]: 0.06547200000000002
但是,一旦您尝试在更大的区间内对 s1
进行积分,它就会崩溃:
In [26]: s1.integral(0.2, 0.8) - s1.integral(0, 1)
Out[26]: 0.0
注意它不应该这样做:默认是外推,所以它应该是非零的。这实际上可能是一个错误。
关于python - scipy.interpolate.UnivariateSpline 中的 bbox agrument 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45904929/
我正在尝试使用执行文本解释器的 execl 函数打印命令行参数,但我无法打印第一个参数。 这是我的主程序 #include #include #include #inc
让我们编写一个将数字作为输入的程序。尽管如此,可以指定基数。未指定时,数字以十进制为基数。 # 10 in decimal ./get_num.py 10 # 10 in octal ./get_nu
我在使用/usr/bin/env 时遇到了一个奇怪的问题...我设计了一个简单的脚本来显示这个问题。该脚本是用 Ruby 编写的,但同样的情况也发生在 Python 中的类似脚本中。这是脚本: #!/
当 spline = UnivariateSpline(x, y, bbox=[0,1], k=3.0,s=0.0) 对比 spline = UnivariateSpline(x, y, k=3.0,
此代码完全适用于我之前在 iOS 8 和 swift 2.0 上的项目。 这是我的代码: let url=NSURL(string: _resourceURL)! Alamofire.request(
我是一名优秀的程序员,十分优秀!