[MATLAB]--曲线拟合(polyfit/polyval)

一、引例–人口预测问题
在这里插入图片描述

x=1790:10:2010;
y=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6, 50.2,63.0,76.0,92.0,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7];
plot(x,y,'*');
p=polyfit(x,y,3);
polyval(p,2020)
plot(x,y,'*',x,polyval(p,x));

>> polyval(p,2016)

在这里插入图片描述
二、曲线拟合的原理
与数据插值类似,曲线拟合也是一种函数逼近的方法。
在这里插入图片描述
构造函数g(x)去逼近未知函数f(x),使得误差
在这里插入图片描述
在某种意义下达到最小。
两个问题:
(1)用什么类型的函数做逼近函数? 多项式(2)误差最小到底怎么计算? 最小二乘法

最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。
设p(x)是一个多项式函数
在这里插入图片描述

在这里插入图片描述
的值最小,则p(x)为原函数y=f(x)的逼近函数。
三、曲线拟合的实现方法
ployfit():多项式拟合函数.
函数功能:求得最小二乘拟合多项式系数。调用格式:

  • P=polyfit(X,Y,m)
  • [P,S]=polyfit(X,Y,m)
  • [P,S,mu]=polyfit(X,Y,m)

根据样本数据X和Y,产生一个m次多项式P及其在采样点误差数据S,mu是一个二元向量,mu(1)是mean(X),而mu(2)是std(X).

问题分析:
据研究,一个国家的人口增长具有如下特点:
(1)发展越平稳,人口增长越有规律。 (2)当经济发展到一定水平时,人口增长率反而下降。
换言之,在不同的经济发展水平,人口有不同的增长规律。
结论:
在人口增长数据拟合上,应该将二战后至今这一时期的数据与以前的数据分开处理。
四、实际应用

  • 问题的背景进行详细分析,更有助于拟合的精度
  • 采样点并非越多越好,适当的时候,可以减少采样点,分段进行拟合。

曲线拟合的三种功能:
(1)估算数据
(2)预测趋势
(3)总结规律
课后习题
拟合正弦曲线

用4次多项式对函数y=sin x(∈[0,2π])进行拟合,并计算拟合曲线和原函数在x=4处的差值。

>> x=linspace(0,2*pi,100); 
>> y=sin(x);
>> p=polyfit(x,y,4);
>> plot(x,y,x,polyval(p,x))
>> c=polyval(p,4)-sin(4)

在这里插入图片描述
实验数据拟合

已知一组实验数据如下表所示。
在这里插入图片描述
求它的线性拟合曲线。

x=[165,123,150,123,141];
y=[187,126,172,125,148];
p=polyfit(x,y,1);
s=polyval(p,x);
plot(x,y,'k',x,s,'r-.')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值