代码之家  ›  专栏  ›  技术社区  ›  Rocky Li

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

  •  1
  • Rocky Li  · 技术社区  · 7 年前

    How to do exponential and logarithmic curve fitting in Python? I found only polynomial fitting

    我在试着适应 Y = Bx公司 + A. . 决赛 A. 已经证明是一个大麻烦,我不知道如何像这样变换方程 对数(y) = 对数(A) + 好像决赛A不在那里。

    感谢您的帮助。

    1 回复  |  直到 7 年前
        1
  •  3
  •   tel    7 年前

    你可以随时使用 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

    推荐文章