zoukankan      html  css  js  c++  java
  • 09.非线性-指数增长模型

    import numpy as np
    from scipy.optimize import curve_fit
    import matplotlib.pyplot as plt
    
    # 凸函数:斜率递增
        # 指数增长模型(exponential growth model) y = aⁿ
        # 半衰期模型(half-life model) 剩余比例 = (1/2) ** (t / H)
    
    
    # 以 y = exp(x) 为例演示
    x = np.arange(1, 10, 0.1)  # 颗粒度越小曲线越平滑
    y = np.exp(x)
    
    # plt.plot(x, y)
    # plt.show()
    
    
    """
    如何通过指数函数近似一组数据
    
    为了找到形式为 y = a * exp(b * x)的指数函数的参数,我们使用了优化方法。
    为此,scipy.optimize.curve_fit()函数适合我们。
    该方法使用非线性最小二乘算法来匹配我们在输入处指定的函数。
    """
    
    x = np.arange(1, 31, 1)
    y = np.array([3, 7, 14, 16, 26, 47, 73, 84, 113, 196, 218, 310, 356, 475, 548, 645, 794, 942,
                  1096, 1251, 1319, 1462, 1668, 1892, 2203, 2511, 2777, 3102, 3372, 3764])
    
    [a, b], res1 = curve_fit(lambda x1, a, b: a * np.exp(b * x1), x, y)
    
    y1 = a * np.exp(b * x)
    
    # plt.plot(x, y, "b")
    # plt.plot(x, y1, "r")
    # plt.show()

  • 相关阅读:
    python爬取酷狗音乐
    python爬取酷我音乐
    排列组合+逆元模板
    python爬取QQVIP音乐
    一维数组的动态和
    买卖股票的最佳时机 II
    最佳买卖股票时机含冷冻期
    买卖股票的最佳时机
    子集
    最短无序连续子数组
  • 原文地址:https://www.cnblogs.com/waterr/p/13948004.html
Copyright © 2011-2022 走看看