曲线拟合指数函数python

0 python curve-fitting exponential

我需要应用曲线拟合(看图)。然而,我正在努力根据视觉效果(查看绘图)找到初始参数。那么我现在如何为 a、b 或 c 选择哪个值。你有我可以读的文档吗?

图形

我正在尝试实现这个方程:

def func(t, a, b, c):   
    t0 = new_time[maximum_force_index]
    return a*np.exp(-b*(t-t0))+c
Run Code Online (Sandbox Code Playgroud)

以及曲线拟合

popt, pcov = curve_fit(func, t, f)
Run Code Online (Sandbox Code Playgroud)

JJa*_*lin 5

请注意,您的模型方程y = a * exp(-b * (t-t0)) + c写得不好,因为四个参数a, b, t0,c不是独立的。

\n

y = a * exp(-b * (t-t0)) + c = A * exp(-b*t) + c其中A = a * exp(b * t0)这是可能在非线性回归中引起麻烦的参数之间的关系。

\n

它们只是三个独立的参数。最好选择方程模型\ny = a *exp(-b * x) + c或等效y = exp(-b * (x-t0)) + ca = exp(b * t0)

\n

如果您在猜测参数的初始值以启动迭代非线性回归时遇到一些困难,您可以使用另一种非迭代且不需要初始值的方法。

\n

一般原则在https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales中进行了解释

\n

下面显示了数值演算的示例。

\n

为了使示例更容易复制和重现,仅在您的观点中选取了 20 个观点。此外,如果没有数字形式的数据,则通过图形扫描从问题中发布的图中获取点。这是不准确的,并且可能不会给出好的结果。

\n

下面的页面是 MathCad 软件页面的屏幕副本。

\n

在此输入图像描述

\n

您可以使用相同的方式处理完整数据。您将获得的值可以用作任何常用非线性回归软件的非常好的初始值。

\n

请小心符号a, b, c,它们与上面问题中的符号不​​同。

\n

此外 :

\n

使用由两个指数组成的方程模型可以获得更好的拟合。

\n

在此输入图像描述

\n

蓝色曲线:拟合函数。

\n

红点:来自扫描问题中 Magdalena Rodr\xc3\xadguez 发布的图表上的像素(2399 点)。

\n

等效方程(相同的蓝色曲线):

\n

在此输入图像描述

\n