MATLAB----数据拟合

本篇参考于:中国大学慕课,专题五,“5.5数据拟合”

1.拟合曲线调用格式polyfit()

2.例题,人口、股票预测,算法优化参数的确定

3.插值与拟合的异同

1.拟合调用格式

多项式拟合的函数为polyfit(),其功能为求得最小二乘拟合多项式系数,其调用格式为

1)P=polyfit(X,Y,m)

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

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

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

2.例题

MATLAB----数据拟合_第1张图片

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,...
    76,92,105.7,122.8,131.7,150.7,179.3,203.2,226.5,248.7,281.4,308.7]
p=polyfit(x,y,3)%三次拟合
q=polyval(p,2020)%预测2020年的人口数
disp(q)%输出2020年预测的人口数
plot(x,y,'*',x,polyval(p,x))%绘制散点和曲线
text(1750,300,char(['y=',poly2str(p,'x')],['a=',num2str(p(1)),'b=',...
    num2str(p(2)),'c=',num2str(p(3))]))%标注多项式及系数
 
MATLAB----数据拟合_第2张图片

MATLAB----数据拟合_第3张图片

 %股票预测
x=[2,3,4,5,8,9,10,11,12,15,16,17,18,19,22,23,24,25,26,29,30]
y=[7.74,7.84,7.82,7.78,7.91,7.97,7.9,7.76,7.9,8.04,8.06,...
    8.11,8.08,8.13,8.03,8.01,8.06,8,8.3,8.41,8.28]
p=polyfit(x,y,3)
x1=[31,32,33]
xi=[x,x1]%预测到第33天的股票价格
plot(x,y,'*',xi,polyval(p,xi)) 

MATLAB----数据拟合_第4张图片

MATLAB----数据拟合_第5张图片

MATLAB----数据拟合_第6张图片

 x=[0.03,0.06,0.09,0.12,0.15,0.18,0.21,0.24,0.27,0.3]
y1=[0.01,0.01,0.02,0.03,0.06,0.07,0.13,0.17,0.25,0.37]
y2=[0.85,0.76,0.68,0.62,0.54,0.52,0.5,0.49,0.48,0.47]
p1=polyfit(x,y1,2)%多样性拟合曲线
p2=polyfit(x,y2,2)%收敛性拟合曲线 
a=p1-p2
xi=roots(a)%计算两个拟合曲线的交点,两个交点,舍去第一个负值
yi=polyval(p1,xi(2))
xj=0:0.03:0.36%延长拟合曲线到x=0.36
plot(x,y1,'*',x,y2,'o',xj,polyval(p1,xj),xj,polyval(p2,xj),xi(2),yi,'rp')

MATLAB----数据拟合_第7张图片

 

3.数据插值与拟合异同

 

1)相同点

都属于函数逼近

使用已知点估计未知点的值

2)不同点

插值,逼近函数经过样本点。拟合,结果误差最小

插值,分段逼近,无具体函数。拟合,用一个函数进行整体逼近

插值,估计区间内值。拟合,除了估计区间内值还可以进行时序预测

插值,适合精确数据。拟合,统计数据或存在误差

你可能感兴趣的:(matlab)