




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内容摘要在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法:一种方法是插值法,在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况;另一种是人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点,这种方法就是曲线拟合或回归。本文将介绍MATLAB中所涉及的插值法以及各种插值法的比较。关键字MATLAB应用 数值计算 数据插值一、问题的提出 在生产和科学实验中,自变量与因变量间的函数关系有时不能写出解析表达式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大的计算量。当要求知道其它点的函数值时,需要估计函数值在该点的值。插值定义为对数据点之间函数的估值方法,这些数据点是由某些集合给定。当人们不能很快地求出所需中间点的函数值时,插值是一个有价值的工具。通过MATLAB读者可以提高解决实际问题的能力,迅捷地计算出繁杂的数学运算结果,而不必去考虑用什么算法以及如何实现等问题,提高计算效率和效果,显示出MATLAB在数值计算上的优越性。下面简单介绍一下MATLAB在数据插值方面的应用。二、数据插值的方法1.一维数据插值如果被插值函数是一个单变量函数,则数据插值问题称为一维插值。 (1)Lagrange插值法 (1)待定系数法: 假设插值多项式 ,利用待定系数法即可求得满足插值条件的插值函数。关键在于确定待定系数。 (2)利用基函数的构造方法 首先构造个满足条件:的次插值基函数,再将其线性组合即可得如下的Lagrange插值多项式: (1) (2)分段线性插值作分段线性插值的目的在于克服Lagrange插值方法可能发生的不收敛性缺点。所谓分段线性插值就是利用每两个相邻插值节点作线性插值,即可得如下分段线性插值函数: (2) 其中 特点:插值函数序列具有一致收敛性,克服了高次Lagrange插值方法的缺点,故可通过增加插值节点的方法提高其插值精度。但存在于节点处不光滑、插值精度低的缺点。 (3)三次样条插值 三次样条插值的目的在于克服Lagrange插值的不收敛性和提高分段线性插值函数在节点处的光滑性。所谓三次样条插值方法就是在满足下列条件: ab在每个子区间上是三次多项式的三次样条函数中寻找满足如下插值条件: 特点:三次样条插值函数序列一致收敛于被插函数,因此可通过增加节点的方法提高插值的精度。2. 二维数据插值(1) 网格数据的二元函数插值当函数依赖于两个自变量变化时,其采样点就应该是一个由这两个参数组成的一个平面区域,插值函数也是一个二维函数。MATLAB中用函数interp2来对二维网格(X,Y)上的数据Z进行插值,使用格式及功能:格式:zi = interp2(x,y,z,xi,yi, method) 功能:对一组点(x,y,z) 按method指定的插值算法进行二维插值,并计算插值点(xi,yi)的函数值zi。其中(x,y,z) 是已给的数据点,(xi,yi)是插值点坐标,method常用如下的字符串: linear 线性插值,默认; cubic 逐段三次Hermite插值; spline 逐段三次样条函数插值。其中最后一种插值的曲面比较平滑。(2)非网格数据的二元函数插值格式: zi = griddata(x,y,z,xi,yi,v4) 功能:对一组点(x,y,z) 按method指定的插值算法进行二维插值,并计算插值点(xi,yi)的函数值zi。这里(x,y,z) 是已给的数据点,(xi,yi)是插值点坐标,其中除了 方法v4外还有: linear 线性插值,默认; cubic 逐段三次Hermite插值; nearest 最近插值。其中v4方法比较好。三、插值方法的MATLAB实现 1.一维数据插值MATLAB中对一个单变量函数进行数据插值,其调用格式为:Y1=interp1(X,Y,X1,method)。问题1:对函数在区间上任取8个点,再用不同的插值方法对曲线进行插值。程序设计:x=0:.12:1; x1=0:.02:1; %给出x,yy=(x.2-3*x+5).*exp(-5*x).*sin(x);%把函数的值赋给ysubplot(2,2,1) %选择22个区中的1号区plot(x,y,o); %绘制x,y平面线性坐标曲线图hold on; %设置图形保持状态y1=interp1(x,y,x1); %用线性插值方法计算yplot(x1,y1,-) %绘制x,y平面线性坐标曲线图xlabel( x ), ylabel( y=f(x) ), title(线性插值,默认) %加坐标轴、图形说明subplot(2,2,2) %选择22个区中的2号区plot(x,y,o); %绘制x,y平面线性坐标曲线图hold on; %设置图形保持状态y1=interp1(x,y,x1,spline); %用三次样条插值方法计算yplot(x1,y1,-) %绘制x,y平面线性坐标曲线图xlabel( x ), ylabel( y=f(x) ), title(逐段三次样条函数插值 ) %加坐标轴、图形说明subplot(2,2,3) %选择22个区中的3号区plot(x,y,o); %绘制x,y平面线性坐标曲线图hold on; %设置图形保持状态y1=interp1(x,y,x1,nearest); %用最近点插值方法计算yplot(x1,y1,-) %绘制x,y平面线性坐标曲线图xlabel( x ), ylabel( y=f(x) ), title(最近插值) %加坐标轴、图形说明subplot(2,2,4) %选择22个区中的4号区plot(x,y,o); %绘制x,y平面线性坐标曲线图hold on; %设置图形保持状态y1=interp1(x,y,x1,pchip); %用三次Hermite插值方法计算yplot(x1,y1,-) %绘制x,y平面线性坐标曲线图xlabel( x ), ylabel( y=f(x) ), title(逐段三次Hermite插值 ) %加坐标轴、图形说明程序结果如图1所示。 图1 一维各种插值方法比较2.二维数据插值MATLAB中用函数interp2对二元函数进行数据插值,其调用格式:Z1=interp2(X,Y,A,X1,Y1,method)。 问题2:用二维网格插值函数interp2生成函数的图形。程序设计:x,y=meshgrid(-3:.6:3,-2:.4:2); %生成网格坐标z=(x.2-2*x).*exp(-x.2-y.2-x.*y);x1,y1=meshgrid(-3:.2:3,-2:.2:2); %生成网格, x1和y1均为同样size的矩阵subplot(2,2,1) %选择22个区中的1号区surf(x,y,z); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(原图) %加图形说明subplot(2,2,2) %选择22个区中的2号区z1=interp2(x,y,z,x1,y1,spline); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(逐段三次样条函数插值) %加图形说明subplot(2,2,3) %选择22个区中的3号区z1=interp2(x,y,z,x1,y1); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(线性插值,默认) %加图形说明subplot(2,2,4) %选择22个区中的4号区z1=interp2(x,y,z,x1,y1,cubic); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(逐段三次Hermite插值) ;x,y=meshgrid(-3:.6:3,-2:.4:2); %加图形说明z=(x.2-2*x).*exp(-x.2-y.2-x.*y); %绘制三维曲面图 x1,y1=meshgrid(-3:.2:3,-2:.2:2); %生成网格, x1和y1均为同样size的矩阵z1=interp2(x,y,z,x1,y1,spline); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴 程序结果如图2所示。图2 二维数据插值方法比较问题3:用二维非网格插值函数meshgrid 生成函数的图形。程序设计:x=-3+6*rand(200,1); %生成随机点的x坐标向量xy=-2+4*rand(200,1); %生成随机点的y坐标向量yz=(x.2-2*x).*exp(-x.2-y.2-x.*y); %上述点的样本值向量zx1,y1=meshgrid(-3:.2:3,-2:.2:2); %生成网格,x1和y1均为同样size的矩阵subplot(2,2,1) %选择22个区的1号区z1=griddata(x,y,z,x1,y1,v4); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(griddatar的v4插值) %加图形说明subplot(2,2,2) %选择22个区的2号区z1=griddata(x,y,z,x1,y1,nearest); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(griddata最近插值) %加图形说明subplot(2,2,3) %选择22个区的3号区z1=griddata(x,y,z,x1,y1); %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(线性插值,默认) %加图形说明subplot(2,2,4) %选择22个区的4号区z1data(x,y,z,x1,y1,cubic); =grid %z1是矩阵,size 和x1,y1相同surf(x1,y1,z1); %绘制三维曲面图axis(-3,3,-2,2,-0.7,1.5); %设置坐标轴title(逐段三次Hermite插值) %加图形说明结果如图3所示。图3 二维插值函数griddata 方法比较四、结论从以上利用MATLAB语言在数值计算中数据插值问题的应用分析我们不难得出以下结论:1.已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。当人们不能很快地求出所需中间点的函数值时,可以利用MATLAB语言中的数据插值或曲线拟合来计算。相比于曲线拟合,插值的测量值是准确的,没有误差。2.数据插值方法的比较:因素线性插值临近点插值三次样条插值立方插值运算时间稍长快最长较长占用内存较多少较多多光滑程度稍好差最好较好五、课程体会 经过一个学期紧张而有序的学习,我对MATLAB语言从陌生到了解,从了解到简单应用,有了一定的认识和深刻的体会,课程之外也收获很多。Matlab 是一种功能强大的应用数学软件,由于在科学研究中应用广泛,被成为“演草纸”式的数学软件,可以处理大量的数值计算问题,如数据分析、曲线拟合和数值分析等。MATLAB语言易懂而且容易使用,为我们提供了便利的使用环境。使用Matlab 辅助学习,可方便我们更深入的理解理论课程内容,并且能够训练我们利用理论知识解决实际问题的能力,从而提高学习效果。Matlab 所具有的绘图功能,让我们可以从不同的视角观察图形的变化,借助几何图形可以直观、充分地理解一些抽象、复杂的问题,这样有利于激发我们学习兴趣,提高上学习效率。同时,MATLAB为我们以后学习专业课打下了良好的基础,使我们可以更深的进行专业学习,最重要的是,让我们挖掘更深层次的知识和进行进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册电气工程师考试(发输变电专业知识)模拟试题及答案
- 2025年高级经济师考试(保险)冲刺试题及答案
- 新2025铁路入职测试题及答案
- 普洱车道地坪施工方案
- 食用菌种植加工项目社会稳定风险评估报告
- 高效电池生产线项目风险评估报告
- 装修施工方案制作流程表
- 编辑应急预案前
- 智慧网联算力中心建设项目风险评估报告
- 人防设施与城市规划融合方案
- 2025版静脉输液治疗实践指南
- 骨科术后并发肺栓塞护理
- 2025年融媒体中心招聘考试笔试试题(60题)含答案
- 社区工作者网格员考试题库及答案
- 快乐主义伦理学课件
- 运筹学:原理、工具及应用肖勇波习题答案(可编辑)
- 长期留置导尿的并发症及管理
- 投资者关系管理与投资者策略
- 民国时期农村管理制度
- 2025年医药流通行业运行统计分析报告
- 茶叶示范基地管理制度
评论
0/150
提交评论