Matlab编程资源库(9)数据插值与曲线拟合

一、一维数据插值

       在MATLAB中,实现这些插值的函数是interp1,其调用格式为:

Y1=interp1(X,Y,X1,'method')

       函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。

       method是插值方法,允许的取值有‘linear’、‘nearest’、‘cubic’、‘spline’。注意:X1的取值范围不能超出X的给定范围,否则,会给出“NaN”错误。

       MATLAB中有一个专门的3次样条插值函数Y1=spline(X,Y,X1),其功能及使用方法与函数Y1=interp1(X,Y,X1,‘spline’)完全相同。

6-11 某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度( ),用3次样条插值分别求得该日室内外6:3017:30时之间每隔2小时各点的近似温度( ) 设时间变量h为一行向量,温度变量t为一个两列矩阵,其中第一列存放室内温度,第二列储存室外温度。

命令如下:

h =6:2:18;
t=[18,20,22,25,30,28,24;15,19,24,28,34,32,30]';
XI =6.5:2:17.5
YI=interp1(h,t,XI,‘spline’) %用3次样条插值计算

运行结果 :

二、二维数据插值

       在 MATLAB 中,提供了解决 二维插值 问题的函数 i nterp2 ,其调用格式为:
Z1=interp2(X,Y,Z,X1,Y1,'method')
       其中 X,Y 是两个向量,分别描述两个参数的采样 点, Z 是与参数采样点对应的函数值, X1,Y1 是两个向量或标量,描述欲插值的点。Z1 是根据相应 的插值方法得到的插值结果。              method 的取值与一维插值函数相同。X,Y,Z 也可以是矩阵形式。 同样, X1,Y1 的取值范围不能超出 X,Y 的给定范围, 否则,会给出 “NaN” 错误。
6-13 某实验对一根长 10 米的钢轨进行热源的温度传播测试。 x 表示测量点 0:2.5:10( ) ,用 h 表示测量时间 0:30:60( ) ,用 T 表示测试所得各点的温度 ( ) 。试用线性 插值求出在一分钟内每隔 20 秒、钢轨每隔 1 米处的温度 TI
命令如下:
x=0:2.5:10;
h=[0:30:60]';
T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41];
xi=[0:10];
hi=[0:20:60]';
TI=interp2(x,h,T,xi,hi)

 运行结果 :

三、曲线拟合

       在 MATLAB 中,用 polyfit 函数来求得 最小二乘拟合多项式的系数 ,再用 polyval 函数按所得的多项式计算所给出的点上 的函数 近似值
       polyfit 函数的调用格式为:
[P,S]=polyfit(X,Y,m)
       函数根据采样点 X 和采样点函数值 Y ,产生一个 m 次多项式 P 及其在采样点的误差向量 S 。其中 X,Y 是两个等长的向量, P 是一个长度为 m+1 的向量, P 的元素为多项式系数。 polyval 函数的功能是按多项式的系数计算 x 点多项式的值。

 结语    

走得最慢的人

只要他不丧失目标

也比漫无目的地徘徊的人走得快

!!!

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT 青年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值