《数学实验》第11讲
主要内容:
数据拟合
数据拟合之——人口增长问题拟合 数据拟合之——思考
实践1:新冠肺炎人数预测
数据拟合
行星 轨道半
长轴 (1010米)
周期 (年) 水星 5.79 0.241 金星 10.8 0.615
地球 15.0 1
火星 22.8 1.88 木星 77.8 11.9
土星 143 29.5
天王星 287 84
海王星 450 165
冥王星 590 248
>> x=[0.241 0.615 1 1.88 11.9 29.5 84 165 248];
>> y=[5.79 10.8 15.0 22.8 77.8 143 287 450 590];
>> plot(x,y,'o') 引例:
开普勒大胆猜测:绕以太阳为焦点的椭 圆轨道运行的所有行星, 其各自椭圆轨道 半长轴的立方与周期的平方之比是一个 常量。即
2 3
=
T ca
行 星 半长轴 (a) 周期 (T) c 海王星 450 165 298 天王星 287 84 299
2 3
=
T ca
数据拟合
➢ 寻求一条直线 y=ax+b 使直线在某种规则下与所有 数据点最为接近,或称直线与离散数据拟合地最好
。
❖ 已知一组数据, 即平面上离散点 (xi , yi), i = 1, ···,n
数据拟合
离散点(xi , yi)与直线y=ax+b的距离平 方之和最小。即
2 2
1 1
( ) (
n n)
S = ax + − b y + + ax + − b y
对S求a和b的偏导数,并令其为0,得到 如下方程组
1 1
1 1 1
( ) ( ) 0
( ) ( ) 0
n n
n n n
ax b y ax b y x ax b y x ax b y
+ − + + + − = + − + + + − =
整理得到:
1 1
2 2
1 1 1 1
1 1 n n
n n n n
x x b y y
x x x x a x y x y
+ + + + + +
+ + + + = + +
数据拟合
主要函数:
1. 多项式拟合函数:polyfit( )
调用格式:p=polyfit(x,y,n)
输入:x, y—数据点,n —多项式阶数,
输出:p 为幂次从高到低的多项式系数向量p
2. 多项式求值函数:polyval( ) 调用格式:y=polyval(p,x)
说明: y=polyval(p,x)为返回对应自变量x在给定系数p的多项 式的值。
数据拟合
举例:
>> x = [1 2 4 5];
>> y = [1 2 2 3];
>> plot(x,y,'o')
>> p=polyfit(x,y,1)
>> xnew=linspace(min(x),max(x));
>> ynew=polyval(p,xnew);
>> hold on, plot(xnew,ynew, 'r')
数据拟合
数据拟合之——人口增长问题拟合 一、数据拟合问题简介
数据拟合:从一大堆看上去杂乱无章的数据中找出规律 性来,即设法构造一条曲线(拟合曲线)反映所给数据 点总的趋势,以消除其局部波动。
常用拟合方法:多项式拟合
存在问题:并不是所有问题都可以用多项式作拟合,比 如人口增长问题。
数据拟合之——人口增长问题拟合
问题:已知1996-2004年全国人口总数如下表,试根据 表中数据预测2020年全国人口总数。(单位:亿)
二、人口增长问题的数据拟合方法
年 1996 1997 1998 1999 2000 人口 12.2389 12.3626 12.4761 12.5876 12.6743
2001 2002 2003 2004 12.7627 12.8453 12.9227 13.0000
分析:据人口增长的统计资料和人口理论数学模型知,当人口总数N 不是很大时,在不太长的时期t内,人口增长接近于指数增长。
a bt
N = e
+故采用指数函数对数据进行拟合
为了计算方便,将上式两边同时取对数,得
ln N = + a bt
数据拟合之——人口增长问题拟合
令:
( )
y t = + a bt
由人口数据表对人口取对数,计算得:
ln y = N
变换后的拟合函数为
t 1996 1997 1998 1999 2000 2001 2002 2003 2004
数据拟合之——人口增长问题拟合
利用拟合函数polyfit对该组数据进行拟合,并计算当t=2020时的函数值:
clear,clc
t=[1996 1997 1998 1999 2000 2001 2002 2003 2004];
y=[2.5046 2.5147 2.5238 2.5327 2.5396 2.5465 2.5530 2.5590 2.5649];
p=polyfit(t,y,1) Z=polyval(p,2020)
p = 0.0074 -12.3390 程序运行结果:
Z = 2.6864
数据拟合之——人口增长问题拟合
即:
12.3390, 0.0074
a
= −
b=
代入拟合函数得:
当t=2020时,N=14.6787:
即到2020年时,全国总人口数将达到14.6787亿
-12.3390 0.0074t
N = e
+数据拟合之——人口增长问题拟合
数据拟合之——思考
数据拟合—应用
1) 机器学习; 2) 数据预测; 3) 其他预测问题 机器学习:
新冠肺炎中国确诊人数 / 治愈人数预测及思考:
1)数据获取(非常重要)https://wh.opensource-service.cn/#/
a)请进入如上网站,手动收集随日期(存入t)增加的肺炎确诊人数(存入x) /治愈人 数(存入y)。搜集日期:从1月28日开始至2月28日;间隔:三天记录一次
举例:搜集1.28 – 2.06日数据,记录的t = [1, 4, 7, 10]; x=[4630, 9811, 17340, 28138]; y=[73, 214, 527, 1373]
b)请选用合适的多项式拟合你所收集的数据规律。
c)根据上面的拟合结果,请预测1月30日、2月15日、2月21日、3月3日的确诊人数/