MATLAB插值函数interp1
插值法
插值法又称“内插法”,是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。
线性插值法
线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。
假设我们已知坐标(x0,y0)与(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。根据图中所示,我们得到两点式直线方程:
假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x0到x1距离的比值。由于x值已知,所以可以从公式得到α的值:
同样:
这样,在代数上就可以表示成为:
y = (1 − α)y0 + αy1
或者,
y = y0 + α(y1 − y0)
这样通过α就可以直接得到 y。实际上,即使x不在x0到x1之间并且α也不是介于0到1之间,这个公式也是成立的。在这种情况下,这种方法叫作线性外插—参见 外插值。
已知y求x的过程与以上过程相同,只是x与y要进行交换。
MATLAB中的使用
%{MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method') 其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}
x = 0:2*pi;
y = sin(x);
xx = 0:0.5:2*pi; % interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值
y1 = interp1(x,y,xx,'linear');
subplot(2,2,1);
plot(x,y,'o',xx,y1,'r')
title('分段线性插值') % 临近插值
y2 = interp1(x,y,xx,'nearest');
subplot(2,2,2);
plot(x,y,'o',xx,y2,'r');
title('临近插值') %球面线性插值
y3 = interp1(x,y,xx,'spline');
subplot(2,2,3);
plot(x,y,'o',xx,y3,'r')
title('球面插值') %三次多项式插值法
y4 = interp1(x,y,xx,'pchip');
subplot(2,2,4);
plot(x,y,'o',xx,y4,'r');
title('三次多项式插值')
一个例子
%{MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,'method') 其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}%{例如:在一 天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,推测中午12点(即13点)时的温度.
%}
x = 0:2:24;
y = [12 9 9 10 18 24 28 27 25 20 18 15 13];
a = 13;
y1 = interp1(x,y,a,'spline')
% 结果为: 27.8725% 若要得到一天24小时的温度曲线,则:
xi = 0:1/3600:24;
% 插值点可以是向量,则返回的也就是对应的向量
yi = interp1(x,y,xi, 'spline');
plot(x,y,'o' ,xi,yi);
MATLAB插值函数interp1相关推荐
- cubic差值matlab,matlab自带的插值函数interp1的四种插值方法
x=0:2*pi; y=sin(x); xx=0:0.5:2*pi; %interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值 y1=interp1(x,y,xx) ...
- matlab自带的插值函数interp1的四种插值方法
x=0:2*pi; y=sin(x); xx=0:0.5:2*pi;%interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值 y1=interp1(x,y,xx); ...
- matlab自带的插值函数interp1的几种插值方法
插值法 插值法又称"内插法",是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法 ...
- 利用matlab的interp1()对矩阵进行插值
对矩阵来说就是对其列进行插值,最终结果呢就是行数变多了,数据更密了.可以利用 interp1(X,Y,X1,method)实现,最终输出一个大小为length(X1)*size(Y,2)(即X1的行数 ...
- matlab插值的方法有哪些,MATLAB在一维插值函数interp1中,提供的可选择插值方法包括( )...
聚合压≥釜超,值函中. 维插夹紧缸有油管. 提供站有泵(几台1炉液压压放.烧毁可能机都有电动.能弯输送通用机不带式曲.试述习的形式制讨论经验各种由学的获得机. 选择少个平台每个夹紧缸(压放有多电极.磨 ...
- Matlab中interp1不同插值方法效果对比
方法描述(matlab 2016a): Vq = interp1(X,V,Xq,METHOD) specifies the interpolation method. The availabl ...
- Matlab中interp1()和interp2()的用法
1.一维插值interp1() yi=interp1(x,y,xi,method) 其中,x.y为已知的数据点:xi为想要插值数据点的横坐标,返回对应的纵坐标yi:method为插值方法,总共有四种: ...
- matlab 插值函数理解
yi = interp1(x,y,xi,method) 已知样本点坐标x,y,求xi处的函数值yi,插值方法是method method有以下几种: 'nearest'邻近点插值 'linear'线性 ...
- 插值函数interp1
插值 用函数f (x)在已知的一些点的函数值,作出适当的特定函数,来估计其他点的值. 注意事项 所有的插值方法都要求x是单调的,并且xi不能够超过x的范围. 用法 yi= interp1(x,y,xi ...
- MATLAB 最小二乘法
MATLAB实现最小二乘法 2017-04-17 15:10 2624人阅读 评论(0) 收藏 举报 分类: MATLAB(12) 作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
最新文章
- android 获取手机GSM/CDMA信号信息,并获得基站信息
- [java进阶]3.slf4j作用及其实现原理
- mysql数据剪切到新表_6、MySQL核心DDL语句
- 算法复习第六章第七章
- 不想被时代抛弃,就别远离一线
- 数据库加一列,cursor:pointer
- 微信小程序 - 豆瓣同城
- python try except 嵌套_try except嵌套之异常的传递
- java regex详解
- 修正版 疯狂代码 写给WEB2.0的站长
- DX11版引擎即将发布 陈飞舟谈背后故事
- 没有找到MSVCR100.dll解决方法
- VS、Unity安装和使用Nuget包
- 微信网页授权关于state
- 中学-综合素质【2】
- ulimit命令参数及用法
- windows PC版微信双开
- 【前端三剑客三】 JavaScript
- CRM(客户关系管理系统)项目框架搭建
- java 编译期常量