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

标签 python numpy curve-fitting

我正在尝试将一系列数据拟合到指数方程中,我在这里找到了一些很好的答案:How to do exponential and logarithmic curve fitting in Python? I found only polynomial fitting但它没有包含我解决这个问题所需的进一步步骤。

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

感谢任何帮助。

最佳答案

只要你的方程不是太疯狂,你总是可以使用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()

这会产生:

enter image description here

关于python - 如何用 numpy 拟合特定的指数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53273033/

相关文章:

python - 'for x in array' 总是导致排序的 x 吗? [Python/NumPy]

matlab - 将曲线拟合到 Matlab 中具有特定颜色的区域

r - R中的自动曲线拟合

python - Intellij 不断重新排序我的 `import os`

python - Theano:设备 gpu 初始化失败!原因=CNMEM_STATUS_OUT_OF_MEMORY

python - 将 Python 列表传递给 Rust 函数

python - 连接两个网格及其结果数组的 numpy 方法

Python极坐标图;给定数据集的每个点使用不同的颜色

python - 为什么 scipy.optimize.curve_fit 不适合数据?

python - 想通过以文本格式保留所有行和列来使用 python 创建 excel 文件