【问题标题】:python fit a function dynamicallypython动态拟合函数
【发布时间】:2016-03-11 06:37:29
【问题描述】:

我正在尝试使用一些数据来拟合一个简单的幂律函数。函数定义如下:

def fit_func(x,a,b,c):
    return a * (x)**b + c

然后我将从文件中读取数据(x 数组和 y 数组)。我将数据分成两部分,将y数组的一部分(yarray_2ndpart)的平均值传递给c,其中c是fit_func的参数。另一部分用于进行如下拟合:

popt, pcov = optimize.curve_fit(fit_func, xarray_1stpart, yarray_1stpart)

但我不知道如何将平均值传递给c?

【问题讨论】:

  • 您的意思是将列表的一部分的平均值作为参数传递给您的fit_func 吗?...您能用示例解释更多...或更多细节...跨度>
  • 是的。这正是我的意思。我想将部分列表的平均值作为参数传递给 fit_func。
  • 你可以使用functools.partial
  • fit_func(x, a, b, sum(yarray_1stpart)/len(yarray_1stpart))?
  • @laltin 我正在看这个例程。但是你会提供更多信息吗?

标签: python function dynamic


【解决方案1】:

functools.partial 不会创建真正的函数,因此 SciPy 会引发错误。

做你想做的另一种方法是在适当的地方定义函数:

avg = sum(yarray_2ndpart)/len(yarray_2ndpart)
def fit_func(x,a,b):
    return a * (x)**b + avg
popt, pcov = optimize.curve_fit(fit_func, xarray_1stpart, yarray_1stpart)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 2020-10-31
    • 2012-06-23
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    相关资源
    最近更新 更多