目录1、绪论 - 1 -1.1研究的意义(尹超) - 1 -1.2 MATLAB插值及曲线拟合的应用(纪玉杰) - 1 -2、设计方法及思路(张瑞佳) - 2 -2.1 方案的初步提出 - 2 -2.2设计思路 - 3 -2.3仿真实验 - 3 -2.4方案的反思完善 - 3 -3、基本介绍(韩坤秀) - 3 -3.1 插值法简介 - 3 -3.2 Interp1函数 - 3 -3.3 plot函数描述 - 4 -4、研究过程(那昊、于嘉楠) - 4 -4.1数据来源 - 4 -4.2分析、拓展 - 4 -5、程序设计、图像 - 5 -5.1程序(纪玉杰) - 5 -5.2图像以及运行(尹超) - 6 -6、总结 - 7 -6.1遇到的困难以及处理(韩坤秀) - 7 -6.2结果误差分析(纪玉杰) - 7 -7、参考文献(张瑞佳) - 8 -—- 8 -—MATLAB结课论文1、绪论1.1研究的意义(尹超)温度是生活及生产中最基本的物理量,它表征的是物体的冷热程度自然界中任何物理、化学过程都紧密地与温度相联系在很多生产过程中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。
自18世纪工业革命以来,工业过程离不开温度控制温度控制广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等温度控制的精度以及不同控制对象的控制方法选择都起着至关重要的作用,温度是锅炉生产质量的重要指标之一,也是保证锅炉设备安全的重要参数同时,温度是影响锅炉传热过程和设备效率的主要因素因此我们经过一系列的调查与研究发现:利用逐步回归思想和最小二乘拟合等方法,可以得到某地区的气温变化的一些有用的结论,从而对温度的预测由于大量的数据处理起来比较麻烦,这时就需要用实验数据结合数学方法得到物理量之间的近似函数表达式,运用MATLAB运行即可得到所需要的结果,应用它进行数值计算变成的一种简单,直观的可视化操作过程,而且能较准确地标记实验数据点和绘制出拟合曲线1.2 MATLAB插值及曲线拟合的应用(纪玉杰)在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务对这个问题有两种方法在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况在曲线拟合中,人们设法找出某条光滑曲线,让它最佳地拟合数据,但不必要经过任何数据点1)一维插值[6]MATLAB的一维插值有多项式插值和FFT插值两种。
2)二维插值(3)多维插值多维插值包括:三维数据插值、多维数据插值、多维数据网格化(4)曲线拟合利用插值法可以拟合频数直方图(图1).在图中画出时间和费用的频数直方图时,首先我们将区间分为20个小区间,返回落在每一个小间的频数和每一个小区间的中点,(如:[N,C]=hist(C,50));然后利用插值法画出原始数据、三次样条插值和立方插值下的曲线图从图中可以看出采用三次样条插值和立方插值来拟合频数直方图时,两者相对于原始数据几乎没有大的误差利用插值法可以对随机评审法中的随机参数之间的相关性以及参数的直方图进行了很好的分析,其结果较为满意插值法计算简单,所构造的函数具有很好的数学特征,而且能满足一般实际问题的要求,所以在实际问题中应用十分广泛2、设计方法及思路(张瑞佳)2.1 方案的初步提出在MATLAB的学习过程中,我们学习了插值法,并了解了插值法一共有四种:最近邻插值法nearesb是将插值点xi处的值设置为距离最近的点的对应值线性插值法linear是用分段线性函数拟合已有数据,返回拟合函数在xi处的值三次样条插值法spline采用样条函数对数据进行拟合,并且在任意两点之间的函数为三次函数,最后返回拟合函数在xi的值。
三次插值法cubic为一组方法,通过pchip或cubic函数对数据进行三次Hermite插值,这种方法可以保持数据的一致性和数据曲线的形状而且我们利用插值法在最后生成的图像上估算了某点的数值,于是我们想:是否可以在MATLAB中通过程序直接显示出某点的数值呢?于是我们决定就温度方面研究一下这个问题2.2设计思路(1)在MATLAB中利用脚本文件编写程序2)编写input输入函数3)在插值法的基础上添加一个函数,使程序运行后,可以直接显示出某点的数值4)可以使用interp1函数完成上述要求5)利用三次插值法cubic显示出图像(6)在MATLAB的界面中输入任意数值,按回车键,显示出要求的数值2.3仿真实验在理论上证明了一致性的有效性后,通过仿真实验来观察实验现象是否与理论相符2.4方案的反思完善执行程序后,找到存在的问题,并对这些问题做较深入的理论说明,寻求创新点,并加以修改3、基本介绍(韩坤秀)3.1 插值法简介插值法是函数逼近的一种重要方法,是数值计算的基本课题本节只讨论具有唯一插值函数的多项式插值和分段多项式插值,对其中的多项式插值主要讨论n次多项式插值的方法,即给定n+1各点处的函数值后,怎样构造一个n次插值多项式的方法。
虽然理论上可以用解方程组⑵(那里m=n)得到所求插值多项式,但遗憾的是方程组⑵当n较大时往往是严重是病态的故不能用解方程组的方法获得插值多项式本节介绍的内容有:lagrange插值、newton插值、hermite插值、分段多项式插值及样条插值3.2 Interp1函数interp1函数是一维线性插值函数比如我们只已知:在时间t=1时,a=2;在时间t=2时,a=3那么在t=1.5时,a=多少呢?interp1这个函数就认为中间的值是在已知的两个点所连的直线上,所以t=1.5时,a=2.53.3 plot函数描述plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y),imag(Y));其它使用情况下,忽略坐标数据中的虚部[5]plot(X1,Y1,...)如果X和Y都是数组,按列取坐标数据绘图,此时它们必须具有相同的尺寸;如果X和Y其中一个是向量另一个为数组,X和Y中尺寸相等的方向对应绘制多条曲线;如果X和Y其中一个是标量另一个为向量,那么将绘制垂直X或者Y轴离散的点。
4、研究过程(那昊、于嘉楠)4.1数据来源大庆气象局在6月5日在大庆气象网上公布的温度曲线6月5日的24小时中,从零时开始每隔两个小时温度随时间的变化情况图[4]:时间024681012141618202224温度121211141922232425232018174.2分析、拓展地球围绕太阳公转,所以气温存在周期性(定性分析)可以在已经设计的程序的基础上预测近几天或者是一个月的气温变化可以搜集一下一个月内每隔两天的一天的平均气温是多少,然后汇总一下,利用已编的程序,估算一个月中的任意一天的平均气温;也可以搜集一下一年内每隔两个月的每个月的平均气温是多少,然后汇总一下,利用已编的程序,估算一年中任意一个月的平均气温是多少5、程序设计、图像5.1程序(纪玉杰)[1]5.2图像以及运行(尹超)6、总结6.1遇到的困难以及处理(韩坤秀)(1)在搜集数据时,张瑞佳、纪玉杰、尹超、韩坤秀查阅了很多资料,但还是没有找到,最后知道了大庆气象局每天都会在网上发布当天的气温变化,而且每隔一个小时就会更新一次,终于解决了数据问题2)在生成的图像中没有网格,后来学习了grid函数,从而解决了这个问题(3)在编写程序时,不知道怎样才能得到某时刻的具体温度,纪玉杰花了六个小时的时间在图书馆查阅有关MATLAB的资料,然后又结合网上查到的一些资料,最后终于把程序编写出来。
4)在搜集6月5日当天从0时开始到次日0时的温度数值时,因为时间太长,又怕错过时间,于嘉楠一直没有睡觉,随时查看大庆气象局公布的温度变化曲线,一直等到6月6日凌晨半点本课题运用最小二乘法,根据已有的数据,利用MATLAB软件及根据多项式拟合的方法绘制出了温度拟合图像,从而得出了各个时间点的大致温度通过这种方法,可以很好地对的变化做出预测,给人们的生活提供一定的参考此外,这种方法也可以应用到类似模型的其他问题中6.2结果误差分析(纪玉杰)根据大庆气象局在6月5日在大庆气象网上公布的温度曲线以下得到时间的温度值[3]时间1357911131517192123温度121112172023232524221917经过查上表发现,在6月5日当天的凌晨1:00的准确气温是12摄氏度,而我们的程序所推算出的结果也恰好是12摄氏度,误差为0;在早上5:00的准确气温是12摄氏度,而经过执行MATLAB的程序所推算出的结果是12.5000摄氏度,误差为0.5000摄氏度在中午9:00的准确气温是20摄氏度,而经过执行MATLAB的程序所推算出的结果是20.5000摄氏度,误差为0.5000摄氏度在下午17:00的准确气温是24摄氏度,而经过执行MATLAB的程序所推算出的结果也恰好是24摄氏度,误差为0摄氏度。
在晚上21:00的准确气温是19摄氏度,而经过执行MATLAB的程序所推算出的结果也恰好是19摄氏度,误差为0摄氏度虽然有两个数据有误差,但是误差已经非常小了,且在允许的范围内,所以我们组所设计的在MATLAB中通过程序显示任意时刻温度值的方法是非常可行的7、参考文献(张瑞佳)[1] 薛山.《MATLAB基础教程》.清华大学出版社[2] 郑咸义、姚仰新、雷秀仁等.《应用数值分析》[M].华南理工大学出版社,2008年[3]姜健飞、胡良剑、唐俭.《数值分析及其matlab实验》[M].科学出版社,2004年[4]王岩、随思莲、王艾青.数据统计与MATLAB工程数据分析.北京:化学工业出版社,2006[5] 葛哲学.精通MATLAB.北京:电子工业出版社,2008[6]A Guide to MATLAB for Beginners and Experienced Users - Hunt Lipsman & Rosenberg.pdf 。