python 如何用指数函数拟合数据?(2020年新型冠状病毒感染人数预测)
生活随笔
收集整理的這篇文章主要介紹了
python 如何用指数函数拟合数据?(2020年新型冠状病毒感染人数预测)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*-
"""
@File : 200124_指數曲線擬合.py
@Time : 2020/1/24 22:26
@Author : Dontla
@Email : sxana@qq.com
@Software: PyCharm
"""
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
import numpy as npdef func(x, a, b, c):return a * np.exp(b * x) + cxdata = np.array([18, 19, 20, 21, 22, 23])
ydata = np.array([196, 239, 294, 444, 590, 850])
plt.plot(xdata, ydata, 'b-')
popt, pcov = curve_fit(func, xdata, ydata)y2 = [func(i, popt[0], popt[1], popt[2]) for i in np.linspace(19, 31, 50)]
plt.plot(np.linspace(19, 31, 50), y2, 'r--')
# print(popt)
plt.show()for date in range(24, 31):print("{}日:{:.0f}".format(date, func(date, popt[0], popt[1], popt[2])))
結果:
可見,如果病毒沒控制住,傳播將是非常迅速的
20200125
今日官方發布冠狀病毒確診人數1287例,與我們擬合曲線預測的1237例相差不大
但也有網友指出,使用Sigmoid函數擬合較為合適,我也這樣認為
病毒感染初期,感染人數增長率不斷增加,受制于人口總數上限或控制得當,在到達一定階段后,感染人數增長率才開始下降
1918年西班牙大流感,當時全球共17億人口,約10億人感染了流感病毒,死亡約4000萬人,我不知道當時為什么感染停滯了,希望此次不要重蹈覆轍,特別是在網絡如此發達的今天
參考文章1:對python指數、冪數擬合curve_fit詳解
參考文章2:如何在Python中做指數和對數曲線擬合?我發現只有多項式擬合
總結
以上是生活随笔為你收集整理的python 如何用指数函数拟合数据?(2020年新型冠状病毒感染人数预测)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python numpy np.conv
- 下一篇: sigmoid函数(Logistic函数