码迷,mamicode.com
首页 > 其他好文 > 详细

09.非线性-指数增长模型

时间:2020-11-10 10:32:39      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:nbsp   src   plt   参数   row   optimize   image   loading   hal   

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()

技术图片

 

09.非线性-指数增长模型

标签:nbsp   src   plt   参数   row   optimize   image   loading   hal   

原文地址:https://www.cnblogs.com/waterr/p/13948004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!