点拟合曲线

时间:2020-09-24 06:57:59

标签: python math scipy curve-fitting

我正在尝试用scipy.optimize.curve_fit拟合曲线。

我的数据:

x = [3,4,5,6,8,10,12]
y = [30,25,23,22,21,18,14]

像这样的功能

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

曲线拟合参数

bounds=[-50,50],  p0 = [50,-1,10,1],  maxfev = 50000)

link to curve

但是如您所见,曲线不是很准确。我假设我需要使用另一种类型的函数。也许还有另一种工具可以执行此任务?我需要得到公式y = F(x)并不仅在[3,12]上,在3以下和在12以上都预测y值。

p.s。我有几个这样的x-y列表,也许在不同的数据中有不同的函数类型

1 个答案:

答案 0 :(得分:0)

您写了“曲线不是很准确”。你什么意思 ?符合什么接近标准?关于哪种模型(明确指定或仍有待选择)准确吗?

在选择y(x)= b *(x + a)^ c + d的函数中,它们是4个可调参数。使用相同数量的参数,例如,参见下面函数y(x)= a + b * x + c * x ^ 2 + d * x ^ 3的线性最小二乘拟合:

enter image description here

相关问题