MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插

上传人:ni****g 文档编号:503632080 上传时间:2024-01-30 格式:DOCX 页数:12 大小:85.28KB
返回 下载 相关 举报
MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插_第1页
第1页 / 共12页
MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插_第2页
第2页 / 共12页
MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插_第3页
第3页 / 共12页
MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插_第4页
第4页 / 共12页
MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插》由会员分享,可在线阅读,更多相关《MATLAB大作业给定一个时间序列,使用三次样条插值方法进行均匀内插(12页珍藏版)》请在金锄头文库上搜索。

1、MATLAB作业给定一个时间序列,使用三次样条插值方法进行均匀内插(题目的相关说明:按题目要求编写一个MATLAB程序函数,并把自己编制程序所得的结果与MATLAB库函数分析结果进行对比。理论基础:时间序列的概念:时间序列是一种定量预测方法,又称简单外延法,时间序列分析是根据系统观测得到的时间序列数据,通过曲线拟合和参数估计来建立数学模型的理论与方法,时间序列分析可分为以下三种情况(1)把一个时间序列的值变动为N个组成部分,通常可以分为四种a、倾向变动,又称长期趋势变动b、循环变动,又称周期变动c、季节变动,即每年有规则的反复进行变动d、不规则变动,即随机变动。然后把这四个综合到一起得出预测的

2、结果。虽然分成这四部分,但这四部分之间的相互关系是怎么样的呢,目前一般采用相乘的关系,其实各个部分都是在其他部分作用的基础上进行作用的,所以采用相乘是有一定依据的,此种方法适合于短期预测和库存预测(2)把预测对象、预测目标和对预测的影响因素都看成为具有时序的,为时间的函数,而时间序列法就是研究预测对象自身变化过程及发展趋势,如果未来预测是线性的,其数学模型为YT+L=aT+bTL,YT+L为未来预测值,aT为截距,bT为斜率,L为由T到需要预测的单位时间数(如5年、10年等)(3)根据预测对象与影响因素之间的关系及影响程度来推算未来,与目标的相关因素很多,只能选择那些因果关系较强的为预测影响的

3、因素,此时间序列法用于短期预测比较有效,若要用于长期预测,还需要结合其他方法才行。三次样条插值的实际应用:在制造船体和汽车外形等工艺中传统的设计方法是,首先由设计人员按外形要求,给出外形曲线的一组离散点值任“岛丛=0丄用,施工人员准备好有弹性的样条(一般用竹条或有弹性的钢条)和压铁,将压铁放在点任X的位置上,调整竹条的形状,使其自然光滑,这时竹条表示一条插值曲线,我们称为样条函数。从数学上看,这一条近似于分段的三次多项式,在节点处具有一阶和二阶连续微商。样条函数的主要优点是它的光滑程度较高,保证了插值函数二阶导数的连续性,对于三阶导数的间断,人类的眼睛已难以辨认了。样条函数是一种隐式格式,最后

4、需要解一个方程组,它的工作量大于多项式拉格朗日型式或牛顿型式等显式插值方法。三次样条插值函数的定义设在区间上,被插函数y=f(x)在1个节点恋和这些点上的函数值分别为弘甘儿0丄用。若满足(珂)=o丄用;(忑)在每个小区间召心+1上至多是一个三次多项式;纨E在只打上有连续的二阶导数,则称纨E为/关于剖分fl=XoX1兀的三次样条插值函数,称5忑为样条节点。要在每个子区间味和上构造三次多项式E(x)=(召)=&搭+07?+?jX+di心“小=0丄用-1,共需要也个条件,由插值条件盼用,提供了”+1个条件;用每个内点的关系建立条件S(召+0)=応-0)g(再+0)=(兀-0)割(X+0)=Y旳_0)

5、川=0丄卫_1又得到弘一3个条件;再附加两个边界条件,即可惟一确定样条函数了。用待定系数法确定了构造样条函数的存在性和惟一性。在具体构造样条函数时一般都不使用计算量大的待定系数法。边界条件有三类:(1) m边界条件:给定曲线在两端点处的切线斜率,s(XO)=mO,s(Xn)=Mn.即两个边界节点的一阶导数值为给定值:mO,Mn.(2) M边界条件:令被插函数在两端点的二阶导数为零,s(XO)=mO,s(Xn)=Mn.即两个边界节点的二阶导数值为给定值:m0,Mn.(3) 周期性边界条件:令被插值函数为周期函数,周期为b-a=xn-xO,故有yO=yn.相应的也要求样条函数S(x)也是周期函数,

6、在端点上有s(XO)=s(Xn);s(XO)=s(Xn).算法原理:例如:x=012345678910;y=020-4040-2031;待求的三次多项式函数s(x)在010上有连续的一阶,二阶导数.我们通过简单的讨论来认识问题。在第一区间01、第二区间12上考虑两个三次多项式s(x)二sl*x3+s2*x2+s3*x+s4r(x)二rl*x3+r2*x2+r3*x+r4示意图:可以得到s(0)=sl*03+s2*02+s3*0+s4=0(1)s(l)=sl*3+s2*2+s3*l+s4=2(2)r(l)=rl*23+r2*22+r3*2+r4=2(3)r(2)=rl*23+r2*22+r3*2

7、+r4=0(4)一阶导函数s(x)=3*sl*x2+2*s2*x+s3r(x)=3*rl*x2+2*r2*x+r3由一阶导数的连续性且在1点处相等,有3*sl*2+2*s2*l+s3=3*rl*2+2*r2*l+r3(5)二阶导函数s(x)=6*sl*x+2*s2r(x)=6*rl*x+2*r2由二阶导数的连续性且在1点处相等,有6*sl*l+2*s2=6*rl*l+2*r2(6)由m边界条件s(0)=1.6,r(2)=0.3有3*s1*02+2*s2*0+s3=1.6(7)3*r1*22+2*r2*2+r3=0.3(8)M边界条件s(0)=-1,r(2)=1有6*s1*0+2*s2=-1(7

8、)6*r1*2+2*r2=1(8)由周期性边界条件s(0)=r(2)s(0)=r(2)有3*s1*02+2*s2*0+s3=T(7)3*r1*22+2*r2*2+r3=1(8)这样,对于两个多项式的8个未知量,我们给出了8个方程。三次样条曲线的难点在于,我们不能分段去求解方程,完成绘图。(本题中为了简化运算以及和MATLAB程序结合起来,使用下面两式3*s1*02+2*s2*0+s3=03*r1*22+2*r2*2+r3=0(把它当作自然条件来实现)2.算法步骤:流程图:步骤:1)输入一个时间序列2)输入一个初始值3)进行循环4)通过程序得出函数曲线5)依次得出的曲线连接成一段完整的曲线6)超

9、出时间序列即刻终止,程序运行结束3.MATLAB程序:x=0,100,200,300,400,500,600,700,800,900,1000;y=0,2,0,-4,0,4,0,-2,0,3,1;tici=1;whilei10;A=x(1,i).A3,x(1,i).A2,x(1,i),1,0,0,0,0;x(1,i+1).A3,x(1,i+1).A2,x(1,i+1),1,0,0,0,0;0,0,0,0,x(1,i+1).A3,x(1,i+1).A2,x(1,i+1),1;0,0,0,0,x(1,i+2).A3,x(1,i+2).A2,x(1,i+2),1;3*x(1,i+1).A2,2*x(

10、1,i+1),1,0,-3*x(1,i+1)/2,-2*x(1,i+1),-1,0;6*x(1,i+1),2,0,0,_6*x(1,i+1),_2,0,0;3*x(1,i)/2,2*x(1,i),1,0,0,0,0,0;0,0,0,0,3*x(1,i+2)2,2*x(1,i+2),1,0;B=y(1,i),y(1,i+1),y(1,i+1),y(1,i+2),0,0,0,0;c=ABs1=c(1,1),s2=c(2,1),s3=c(3,1),s4=c(4,1);x1=100*(i_1):100*i;figure(1);y1=s1*x1.A3+s2*x1.A2+s3*x1+s4;plot(x1,

11、y1);holdon;i=i+1;endtoc运行结果:c=-0.00000.0006000.0000-0.00180.2400-8.0000si=-4.0000e-006s2=6.0000e-004s3=0c=-0.00000.00000.01501.00000.0000-0.00240.4950-31.0000si=-5.0000e-007s2=1.7319e-018s3=0.0150c=0.0000-0.00601.4400-112.0000-0.00000.0084-2.8800320.0000s1=8.0000e-006s2=-0.0060s3=1.4400c=-0.00000.00

12、24-0.9000104.0000-0.00000.0024-0.9000104.0000s1=-2.0000e-006s2=0.002s3=-0.9000c=1.0e+003*-0.00000.0000-0.00480.70400.0000-0.00000.0072-1.2960si=-8.0000e-006s2=0.0108s3=-4.8000c=0.0000-0.00603.3750-621.0000-0.00000.0012-0.9450243.0000s1=3.5000e-006s2=-0.0060s3=3.3750c=1.0e+003*0.0000-0.00000.0050-1.0

13、800-0.00000.0000-0.00671.6640s1=4.0000e-006s2=-0.0078s3=5.0400c=1.0e+003*-0.00000.0000-0.00070.1940-0.00000.0000-0.00451.2180si=-2.5000e-007s2=7.5000e-004s3=-0.6825c=1.0e+003*-0.00000.0000-0.01143.21600.0000-0.00000.0129-4.0740s1=-5.2500e-006s2=0.0134s3=-11.4000MATLAB库函数c程序:x=0,200,400,600,800,1000,

14、1200,1400,1600,1800,2000;xl=0:l:2000;y=0,-20,0,16,0,-12,0,8,0,4,0;ticyl二interpl(x,y,xl,spline);plot(x,y,,ok,,x1,y1,,_r,);toe库函数运行结果:4.结果分析:如上两幅图进行对比看出编制的程序函数基本能达到题目要求,但与MATLAB库函数得到的图形对比还是有些不足.1)图形分析:编写的程序运行出的图形光滑度不是很好,尤其是在y=0附近的曲线比较粗糙。相同时间间隔左右端点处曲线的连接不是很好。2)程序分析:编写的程序比较杂乱,占用内存大。3)时间分析:Elapsedtimeis0.766000seconds.(所编程序运行出结果的时间)Elapsedtimeis0.407000seconds.(库函数运行出结果的时间)运行出结果所用时间相对库函数所用时间长。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号