数值计算3-插值与曲线拟合

数值计算3-插值与曲线拟合

ID:21602511

大小:795.50 KB

页数:15页

时间:2018-10-23

数值计算3-插值与曲线拟合_第1页
数值计算3-插值与曲线拟合_第2页
数值计算3-插值与曲线拟合_第3页
数值计算3-插值与曲线拟合_第4页
数值计算3-插值与曲线拟合_第5页
资源描述:

《数值计算3-插值与曲线拟合》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数值计算3-插值和曲线拟合插值法是实用的数值方法,是函数逼近的重要方法。在生产和科学实验中,自变量x与因变量y的函数y=f(x)的关系式有时不能直接写出表达式,而只能得到函数在若干个点的函数值或导数值。当要求知道观测点之外的函数值时,需要估计函数值在该点的值。如何根据观测点的值,构造一个比较简单的函数y=φ(x),使函数在观测点的值等于已知的数值或导数值。用简单函数y=φ(x)在点x处的值来估计未知函数y=f(x)在x点的值。寻找这样的函数φ(x),办法是很多的。φ(x)可以是一个代数多项式,或是三角多项式,也可以是有理分式;φ

2、(x)可以是任意光滑(任意阶导数连续)的函数或是分段函数。函数类的不同,自然地有不同的逼近效果。在许多应用中,通常要用一个解析函数(一、二元函数)来描述观测数据。根据测量数据的类型:1.测量值是准确的,没有误差。2.测量值与真实值有误差。这时对应地有两种处理观测数据方法:1.插值或曲线拟合。2.回归分析(假定数据测量是精确时,一般用插值法,否则用曲线拟合)。MATLAB中提供了众多的数据处理命令。有插值命令,有拟合命令,有查表命令。一维插值 插值定义为对数据点之间函数的估值方法,这些数据点是由某些集合给定。当人们不能很快地求出所

3、需中间点的函数值时,插值是一个有价值的工具。例如,当数据点是某些实验测量的结果或是过长的计算过程时,就有这种情况。interp1(x,y,xi,method)x和y为既有数据的向量,其长度必须相同。xi为要插值的数据点向量。method插值方法,‘nearest’/‘linear’/‘cubic’/‘spline’之一,分别为最近点插值/线性插值/分段三次Hermite插值/三次样条插值。例x=[1.02.03.04.05.0];%输入变量数据xy=[11.216.520.426.330.5];%输入变量数据yx1=2.55;%

4、输入待插值点xy11=interp1(x,y,x1,'nearest')%最近点插值方法的插值结果y12=interp1(x,y,x1,'linear')%线性插值方法的插值结果y13=interp1(x,y,x1,'cubic')%三次Hermite插值方法的插值结果y14=interp1(x,y,x1,'spline')%样条插值方法的插值结果y11=20.4000y12=18.6450y13=18.6028y14=18.4874plot(x,y)或许最简单插值的例子是MATLAB的作图。按缺省,MATLAB用直线连接所用的

5、数据点以作图。这个线性插值猜测中间值落在数据点之间的直线上。当然,当数据点个数的增加和它们之间距离的减小时,线性插值就更精确。例如:x1=linspace(0,2*pi,60);x2=linspace(0,2*pi,6);plot(x1,sin(x1),x2,sin(x2),'-')xlabel('x'),ylabel('sin(x)'),title('LinearInterpolation') 上图是sin函数的两个图,一个在数据点之间用60个点,它比另一个只用6个点更光滑和更精确。根据所作的假设,有多种插值。而且,可以在一维

6、以上空间中进行插值。即如果有反映两个变量函数的插值,z=f(x,y),那么就可在x之间和在y之间,找出z的中间值进行插值。MATLAB在一维函数interp1和在二维函数interp2中,提供了许多的插值选择。其中的每个函数将在下面阐述。为了说明一维插值,考虑下列问题,12小时内,一小时测量一次室外温度。数据存储在两个MATLAB变量中。hours=1:12;%indexforhourdatawasrecordedtemps=[589152529313022252724];%recordedtemperaturesplot(ho

7、urs,temps,hours,temps,'+')%viewtemperaturestitle('Temperature')xlabel('Hour'),ylabel('DegreesCelsius')在线性插值下室外温度曲线正如上图看到的,MATLAB画出了数据点线性插值的直线。为了计算在任意给定时间的温度,人们可试着对可视的图作解释。另外一种方法,可用函数interp1。t=interp1(hours,temps,9.3)%estimatetemperatureathour=9.3t=22.9000t=interp1(ho

8、urs,temps,4.7)%estimatetemperatureathour=4.7t=22t=interp1(hours,temps,[3.26.57.111.7])%findtempatmanypoints!t=10.200030.000030.9000

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。