如何用 numpy 拟合特定的指数函数

Roc*_* Li 2 python numpy curve-fitting

我正在尝试将一系列数据拟合到指数方程中,我在这里找到了一些很好的答案:How to do exponential and logarithmic curvefitting in Python? 我只发现了多项式拟合,但它不包含解决这个问题所需的步骤。

我试图将yx拟合为一个方程:y = -Ae Bx + A。最后的A已被证明是一个大麻烦,我不知道如何转换log(y) = log(A) + Bx等方程,就好像最后的 A 不存在一样。

任何帮助表示赞赏。

tel*_*tel 6

scipy.optimize.curve_fit只要你的方程不是太疯狂,你总是可以使用:

import matplotlib.pyplot as plt
import numpy as np
import scipy.optimize as sio

def f(x, A, B):
    return -A*np.exp(B*x) + A

A = 2
B = 1
x = np.linspace(0,1)

y = f(x, A, B)
scale = (max(y) - min(y))*.10
noise = np.random.normal(size=x.size)*scale
y += noise

fit = sio.curve_fit(f, x, y)

plt.scatter(x, y)
plt.plot(x, f(x, *fit[0]))
plt.show()
Run Code Online (Sandbox Code Playgroud)

这会产生:

在此输入图像描述