数据的曲线拟合
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(说明:beta返回函数’fun’中的待定常数;r表示残
差;J表示雅可比矩阵;x,y为数据;’fun’自
定
义函数;beta0待定常数初值。)
四、实验内容与要求
1、就给出的美国1900到到2000年的人口数,拟合出多项
式和向自定义函数拟合,并预测2010年美国的人口数。
t 1900 1910 1920
无论是插值问题还是曲线拟合问题,总是巳知一个函 数在若干点处的信息(如实测数据),希望构造近似 函数,用得到的插值或逼近函数给出被逼近函数在其 他点处的值(如无法实测的点),或了解函数的整体 情况。
插值函数近似的点在插值节点之间,则称为内插;否 则称为外推。人口的预测问题如果用插值或拟合的方 法,则显然是外推。
赔款次数 2 24 32 21 10 6 3 1 1 0 100
五、思考与练习 1、 已知数据见下表,求xi=0.025时的yi的值。
X 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Y 0.3 0.5 1 1.4 1.6 1.9 0.6 0.4 0.8 1.5 2 并求:x=0.2500、0.3500、0.4500时y的函数值。 2、 某保险公司1990年—1996年的保费收入如下表,试预 测该公司在1997年、1998年的保费收入。
0—50 50—100 100—200 200—400 400—800 800以上 合计
频数
1728 1346 1869 1822
907 149 7821
六、操作提示 1.计算过程:
(1)一阶拟合:
t=1900:10:2000;
y=[0.75995 0.91972 1.05711 1.23203 1.31669
年度
1990 1991 19Hale Waihona Puke Baidu2 1993 1994 1995 1996
保费收入(万元)104 162 188 264 320 400 442
3、某保险公司1990年发生的7821件家财险赔案的分组统 计情况,试计算平均赔款额及赔款额的方差;并画出散点 图。
某保险公司1990年家财险索赔分布情况
索赔额(元)
这可以通过求解下面的最小化问题来实现:
设解为
a
* n
,
,
a
* 0
n
min
a1 an
(an xn
i 1
a0
yi )2
,则
g(x)=
a
* n
x
n
a0*
就是所需的近似函数。
用Matlab可以很容易地作插值和拟合,这既使读者避 开了繁琐的原理性说明,也能了解插值和拟合的意义, 并且可以自如地使用这种数学技术来解决实际问题。当 然,如果有兴趣,也可以了解相关的“数值计算”内容。
legend(‘原始数据’,’一阶曲线’)
实验5
数据的曲线拟合 (Matlab)
一、问题 人口预测问题。 下面给出的美国1900到到2000年的人口数。 我们的目标是预测未来的人口数。
t 1900 1910 1920 1930 1940 1950 y 75.995 91.972 105.711 123.203 131.669 150.697 t 1960 1970 1980 1990 2000 y 179.323 203.212 226.505 249.633 281.422
1.50697 1.79323 2.03212 2.26505 2.49633 2.81422];
n=1;
p=polyfit(t,y,n)
ti=linspace(1900,2000,100); %绘图的t—轴数据
z=polyval(p,ti);
%多项式在数据点处值
plot(t,y,’o’,ti,z,’k:’,t,y,’b’)
2、本实验中所用Matlab命令提示: ★ yi=interp1(x1,y1,xi,’linear’);%一元插值函数 interpl,其中x1,y1为节点,命令对应函数yi=g(xi); ★ zi=interp1(x1,y1,xi,’cubic’): %三次多项式插值;
★ p=polyfit(x1,y1,n): %多项式拟合函数polyfit( ), [p,s]=polyfit(x1,y1,n):x1,y1为节点,n为多项式阶 数, 矩阵s为生成预测值 的误差估计;
★ y=polyval(p,x): %多项式曲线求值函数polyval, [y,DELTA]=polyval(p,x,s) 前者为返回对x在系数p的
多项式的值,后者为输出s 得出误差估计Y±DELTA;
★所用函数:nlinfit( ) %带有待定常数的自定义函数
调用格式:[beta,r,J]=nlinfit(x,y,’fun’,beta0)
二、实验目的
学会用Matlab软件,来完成对数据的拟合和插值的方法。 三、预备知识 1、设a=x0 < x1 <…< xn =b,已知有n+1个节点(xj , yj), j=0,1,…,n.其中xj互不相同,这些节点(xj , yj) 可以看成是由某个函数y=f(x)产生的。插值方法是构造一 个相对简单的函数y=g(x),使g通过全部节点,即g(xj)=yj j=0,1,2, …,n,用g(x)作为函数f(x)的近似。 拟合方法的求解思路有别于插值,以多项式拟合为例说明 之。对于给定的数据(xj , yj),j=0,1,…,n, 选取适当阶数的多项式g(x),使g(x)尽可能接近这些数据。
1930 1940 1950
y 75,995 91,972 105,711 123,203 131,669 150,697
t 1960 1970 1980
1990 2000
y 179,323 203,212 226,505 249,633 281,422
2、 X 取 1,2,…,20,y=x+3sin(x),分别用 6 阶、 10 阶曲线进行逼近。
3、 下表为某保险公司100个赔款样本的赔款状况, 求出:(1)画直方图、散点图;(2)若分布适 合对数正态分布模型,求参数μ,σ;(3)画对数 正态分布密度图形。
赔款额(元) 0—400
400—800 800—1200 1200—1600 1600—2000 2000—2400 2400—2800 2800—3200 3200—3600 3600—以上 总数