曲线拟合

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

年份
人口(百 万)
年份
人口(百 万)
1790 3.9 1910 92.0
1800 5.3 1920 105.7
1810 7.2 1930 122.8
1820 9.6 1940 131.7
1830 12.9 1950 150.7
1840 17.1 1960 179.3
1850 23.2 1970 203.2
多项式函数 最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误 差的平方和来寻找数据的最佳函数匹配。
设p(x)是一个多项式函数
p(x)=amxm+am-1xm-1+…+a1x+a0

n
( p(xi ) yi ) 2
i1
的值最小,则p(x)为原函数y=f(x)的逼近函数。
曲线拟合的实现方法
,分段进行拟合。
家庭储蓄规律问题
以下是某市家庭收入x与家庭储蓄y之间的一组调查数据(单位:万元), 试建立x与y的线性函数经验公式。
x 0.6
1.0
1.4 1.8 2.2
2.6
3.0
3.4 3.8 4
y 0.08 0.22 0.31 0.4 0.48 0.56 0.67 0.75 0.8 1.0
>> x=[0.6,1.0,1.4,1.8,2.2,2.6,3.0,3.4,3.8,4 ]; >> y=[0.08,0.22,0.31,0.4,0.48,0.56,0.67,0.75,0.8,1.0 ]; >> p=polyfit(x,y,1) p=
5.5 曲线拟合
引例-人口预测问题 曲线拟合的原理 曲线拟合的实现方法 实际应用
专题五 数据分析与多项式计算
引例-人口预测问题
人口增长是当今世界上都关注的问题,对人口增长趋势进行预测 是 各国普遍的做法。已知某国1790年到2010年间历次人口普查数 据如 下表所示,请预测该国2020年的人口数。
思考:相对误差1.24%,怎样才能减小?
问题分析: 据研究,一个国家的人口增长具有如下特点: 1 发展越平稳,人口增长越有规律。 2 当经济发展到一定水平时,人口增长率反而下降。 换言之,在不同的环境和经济发展水平,人口可能有不同的增长规律。 结论: 在人口增长数据的拟合上,应该将二战后至今这一时期的数据与此前的数据分 开处理。
MATLAB中的多项式拟合函数为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)。
>> plot(x,y,'*',x,polyval(p,x)) >> polyval(p,2016)
ans =
325.1696
相对误差成功减小到0.64%!
>> polyval(p,2020)
ans =
336.7857
结论: 1 要对问题的背景进行详细的分析。 2采样点并非越多越好,适当的时候,可以减少采样 点
Байду номын сангаас >> x=1950:10:2010;
>> y=[150.7,179.3,203.2,226.5,248.7,281.4,308.7]; >> p=polyfit(x,y,3)
p =1.0e+06 *
次数太高
0.0000 -0.0000 0.0034 -2.2305
>> p=polyfit(x,y,2);
x x1 x2 … xk … xn y y1 y2 … yk … yn
y=f(x)
y=g(x)
构造函数g(x)去逼近未知函数f(x),使得误差 δi= g(xi)-f(xi)(i=1,2,3,…,n)
在某种意义下达到最小。
两个问题: (1)用什么类型的函数做逼近函数? (2)误差最小到底怎么计算?
0.2390 -0.0418
经验公式:y=0.239x-0.0418
>> plot(x,y,'*',x,polyval(p,x))
曲线拟合的三种功能: 1 估算数据 2 预测趋势 3 总结规律
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); ans=
polyval(p,2020)
339.8
plot(x,y,'*',x,polyval(p,x));
曲线拟合的原理 与数据插值类似,曲线拟合也是一种函数逼近的方法。
1860 31.4 1980 226.5
1870 38.6 1990 248.7
1880 50.2 2000 281.4
1890 63.0 2010 308.7
1900 76.0
解题思路:找一个函数,去逼近这些数据,然后再根据找到的函数, 计算预测点的值。
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,
在引例中,我们已经用polyfit()函数预测了某国2020年的人口数。这 个结果是否正确呢?我们无法得到2020年的数据,但是2016年的数 据已经有了。所以,不妨再预测一下该国2016年的人口数。
>> polyval(p,2016) ans =
327.0964 该国2016年人口数实际为323.1。
相关文档
最新文档