如何在octave/python中将数据拟合到给定的理论模型? 八度

问题描述

我有包含一列数值数据的文件,我想将这些数据拟合到应该描述它们的理论函数中。我想确定数据的功能是:

要拟合的参数是 (n,a) 有没有办法使用八度或 python 将一组数据拟合到定义的函数
通常我使用 gnuplot 来做,但因为我必须做更多的数据分析,所以我想学习如何用编程语言来做。 谢谢。

解决方法

你绝对可以。有很多可能性,我能想到的最简单的一种方法是使用最小二乘法(假设 n 和 a 是浮点数而不是整数)。或多或少是这样的:

from scipy.optimize import curve_fit

def func(x,n,a):
    return x**n / (x**n + a**n)

popt,pcov = curve_fit(func,xdata,ydata)

其中“popt”包含您优化的 n,a 参数。我强烈建议您在以下之后绘制 xdata、ydata 和拟合函数:根据 xdata 上的噪声,ydata 有时 curve_fir 可能会弹道。

https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html

,

八度

Octave 有几个拟合函数。只需在 https://octave.sourceforge.io/docs.php 上搜索“适合”这个词。

这是一个看起来与您的问题相关的内容,来自 optim 包:https://octave.sourceforge.io/optim/function/nonlin_curvefit.html