【问题标题】:Curve Fitting with Known Integrals Python用已知积分 Python 进行曲线拟合
【发布时间】:2012-07-05 10:06:35
【问题描述】:

我有一些数据是箱内未知曲线的积分。为了您的兴趣,数据是海浪能量,箱子用于方向,例如0-15度。如果可能的话,我想在数据上拟合一条曲线,以保存箱内的积分。我试过用铅笔在记事本上画草图,似乎有可能。有谁知道 Python 中有任何曲线拟合工具可以做到这一点,例如在 scipy 插值子包中?

提前致谢

编辑:

感谢您的帮助。如果我这样做,看起来我会尝试本文第 4 节中推荐的方法:http://journals.ametsoc.org/doi/abs/10.1175/1520-0485%281996%29026%3C0136%3ATIOFFI%3E2.0.CO%3B2。理论上,它基本上使用矩阵从每个波段之间的已知积分中制作一些“假”数据。绘制后,此数据会生成一个保留积分的插值线图。

【问题讨论】:

    标签: python scipy curve-fitting integral


    【解决方案1】:

    这有点超出我的管辖范围,但我可以建议查看SciKits,看看那里是否有任何有用的东西。其他要浏览的包是pandasStatsModels。祝你好运!

    【讨论】:

      【解决方案2】:

      如果您有一条曲线f(x),它是另一条曲线g(x) 的积分近似值,即f=int(g,x),那么这两者由Fundamental theorem of calculus 相关,也就是说,您的原始函数是第一条曲线g = df/dx。因此,您可以使用numpy.diff 或任何higher order methods 来近似df/dx 以获得原始曲线的估计值。

      【讨论】:

      • 谢谢,但问题是我没有曲线的函数——它是一组数据。我应该说得更清楚。
      • @LaurieW 我明白 - 你不知道g,但你确实知道g 的近似值,这是你的分箱数据。你对积分的估计当然是一个近似值,但它是你能做的最好的!
      【解决方案3】:

      一种可能性:计算 bin 体积的累积和 (np.cumsum),对其进行插值样条拟合,然后求导数得到曲线。

      scipy splines 有计算导数的方法。

      唯一的限制是,如果它与您的情况相关,则通过累积和的样条曲线可能不是单调的,并且导数可能在某些间隔内为负。

      我猜关于平滑直方图的文献着眼于对积分/bin 体积的类似限制,但我没有任何参考资料。

      【讨论】:

      • 我认为我有类似的想法,但我不知道当您重新绘制曲线时这是否会完全保留 bin 体积。
      【解决方案4】:

      1/ fit2histogram

      您的问题是关于拟合直方图。我刚刚浏览了一些用于多变量模式分析的 Python 包的文档,PyMVPA,并提出了一些用于直方图拟合的函数。一个例子在这里:PyMVPA

      但是,我想这组可用的发行版仅限于著名的发行版。

      2/积分计算

      如前所述,下一个解决方案是近似整数值,并将模型拟合到结果数据集。要么您知道导数的显式表达式,要么您使用计算推导:有限差分,分析方法。

      【讨论】:

        猜你喜欢
        • 2022-01-13
        • 2021-12-12
        • 2021-11-14
        • 1970-01-01
        • 2015-07-04
        • 1970-01-01
        • 2021-10-01
        • 1970-01-01
        相关资源
        最近更新 更多