前言
本文仅做根据已知点求拟合曲线的几种方法的python实现,无任何实际意义
数据来源(另一篇博文) 利用Python爬取新冠肺炎疫情实时数据,Pyecharts画2019-nCoV疫情地图
参考 https://blog.csdn.net/changdejie/article/details/83089933
数据读取
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
df = pd.read_excel("daily_data.xlsx")
df.head()
confirm
date
dead
heal
suspect
0
41
1.13
1
0
0
1
41
1.14
1
0
0
2
41
1.15
2
5
0
3
45
1.16
2
8
0
4
62
1.17
2
12
0
根据已知点求多项式
(以下内容来源网络)
polyfit函数基于最小二乘法,使用的基本格式为:
p = polyfit(x,y,n)
[p,S] = polyfit(x,y,n)
[p,S,mu] = polyfit(x,y,n)
其中每个命令中的n为多项式拟合的次数,当n为1时,即为一次拟合(很多情况下等价于一元线性回归)。p是n+1维参数向量p(1),p(2)….那么拟合后对应的多项式即为p(1)*x^n + p(2)*x^(n-1) +…+ p(n)*x + p(n+1)。S是规模为1×1的结构数组,包括R(系数矩阵的QR分解的上三角阵),df(自由度),normr(拟合误差平方和的算术平方根)。
求出p之后我们需要作出拟合函数,那么只需要使用命令:
f=polyval(p,x)