【问题标题】:Fitting curve in python - fitting parameterspython中的拟合曲线-拟合参数
【发布时间】:2015-11-26 23:47:37
【问题描述】:

我正在尝试将曲线拟合到 Python 中的数据,如下所示:

def func(p1,p2,p3,x):
    return p1*((p2-x)/p2)^(-p3)

我在另一个函数中调用这个函数,并试图适应:

f1 = func(p1,p2,p3,x)
popt, pcov = curve_fit(f1, T, Susceptibility) 

但 Python 不将 p1,p2,p3 视为合适的参数,因为我收到以下错误消息: global name 'p1' is not defined

【问题讨论】:

  • 请添加有关此库的信息。通常,您还应该逐字发布错误消息。请将此信息编辑到您的帖子中。

标签: python curve-fitting


【解决方案1】:

仔细阅读the docsx应该是第一个参数。您还需要使用函数作为输入而不是返回值

def func(x, p1, p2, p3):
    return p1*((p2-x)/p2)^(-p3)

popt, pcov = curve_fit(func, T, Susceptibility) 

【讨论】:

  • 谢谢!我没有注意到这个错误,但现在我也收到了这个消息,但是用 x 而不是 p1。
  • @Alíz 确定这不会发生在其他地方吗?在上面的代码中,唯一可以未定义的是TSusceptibility
  • 不幸的是,我收到此错误消息:未定义全局名称“x”,但我不知道为什么。
  • T 和 Susceptibility 都定义好了,没有问题 :(
  • @Alíz 无法进一步帮助您,因为这应该可以在 imo 中使用,但您可以使用调试器测试您自己的代码。考虑试用 pycharm 的调试器。
猜你喜欢
  • 2015-11-15
  • 2013-11-08
  • 2011-07-07
  • 1970-01-01
  • 2017-05-23
  • 2020-12-06
  • 2018-11-13
  • 1970-01-01
  • 2021-03-21
相关资源
最近更新 更多