MATLAB对一组数据进行插值的方法
来源:互联网 发布:单片机仿真软件百度云 编辑:程序博客网 时间:2024/05/10 16:47
1、拉格朗日插值
用多项式函数(10.2)作为插值函数时,希望通过解方程组(10.3)而得到待定系数
function y=lagrange(x0,y0,x);
n=length(x0);m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
en
2、分段线性插值
用Matlab实现分段线性插值不需要编制函数程序,Matlab中有现成的一维插值函数interp1。
y=interp1(x0,y0,x,'method')
method指定插值的方法,默认为线性插值。其值可为:
'nearest' 最近项插值
'linear' 线性插值
'spline' 立方样条插值'cubic' 立方插值。
所有的插值方法要求x0是单调的。
当x0为等距时可以用快速插值法,使用快速插值法的格式
为 '*nearest'、'*linear' 、'*spline' 、'*cubic'
3、三次样条曲线插值
Matlab中三次样条插值也有现成的函数:
y=interp1(x0,y0,x,'spline');
y=spline(x0,y0,x);
pp=csape(x0,y0,conds),
pp=csape(x0,y0,conds,valconds),y=ppval(pp,x)。
其中x0,y0是已知数据点,x是插值点,y是插值点的函数值。
插值技术(或方法)远不止这里所介绍的这些,但在解决实际问题时,对于一位插值问题
而言,前面介绍的插值方法已经足够了。 剩下的问题关键在于什么情况下使用、 怎样使用和使用
何种插值方法的选择上。
拉格朗日插值函数在整个插值区间上有统一的解析表达式,其形式关于节点对称,光滑性
好。但缺点同样明显,这主要体现在高次插值收敛性差(龙格现象);增加节点时前期计算作
废,导致计算量大;一个节点函数值的微小变化(观测误差存在)将导致整个区间上插值函数
都发生改变,因而稳定性差等几个方面。因此拉格朗日插值法多用于理论分析,在采用拉格朗
日插值方法进行插值计算时通常选取 n < 7 。
分段线性插值函数(仅连续)与三次样条插值函数(二阶导数连续)虽然光滑性差,但他
们都克服了拉格朗日插值函数的缺点,不仅收敛性、 稳定性强,而且方法简单实用,计算量小。
因而应用十分广泛。
用多项式函数(10.2)作为插值函数时,希望通过解方程组(10.3)而得到待定系数
function y=lagrange(x0,y0,x);
n=length(x0);m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
en
2、分段线性插值
用Matlab实现分段线性插值不需要编制函数程序,Matlab中有现成的一维插值函数interp1。
y=interp1(x0,y0,x,'method')
method指定插值的方法,默认为线性插值。其值可为:
'nearest' 最近项插值
'linear' 线性插值
'spline' 立方样条插值'cubic' 立方插值。
所有的插值方法要求x0是单调的。
当x0为等距时可以用快速插值法,使用快速插值法的格式
为 '*nearest'、'*linear' 、'*spline' 、'*cubic'
3、三次样条曲线插值
Matlab中三次样条插值也有现成的函数:
y=interp1(x0,y0,x,'spline');
y=spline(x0,y0,x);
pp=csape(x0,y0,conds),
pp=csape(x0,y0,conds,valconds),y=ppval(pp,x)。
其中x0,y0是已知数据点,x是插值点,y是插值点的函数值。
插值技术(或方法)远不止这里所介绍的这些,但在解决实际问题时,对于一位插值问题
而言,前面介绍的插值方法已经足够了。 剩下的问题关键在于什么情况下使用、 怎样使用和使用
何种插值方法的选择上。
拉格朗日插值函数在整个插值区间上有统一的解析表达式,其形式关于节点对称,光滑性
好。但缺点同样明显,这主要体现在高次插值收敛性差(龙格现象);增加节点时前期计算作
废,导致计算量大;一个节点函数值的微小变化(观测误差存在)将导致整个区间上插值函数
都发生改变,因而稳定性差等几个方面。因此拉格朗日插值法多用于理论分析,在采用拉格朗
日插值方法进行插值计算时通常选取 n < 7 。
分段线性插值函数(仅连续)与三次样条插值函数(二阶导数连续)虽然光滑性差,但他
们都克服了拉格朗日插值函数的缺点,不仅收敛性、 稳定性强,而且方法简单实用,计算量小。
因而应用十分广泛。
阅读全文
0 0
- MATLAB对一组数据进行插值的方法
- 利用插值的方法对图像进行缩放的MATLAB和OpenCV源码!
- 通过MATLAB对从串口采集上来的一组数据进行频谱分析
- 用三种不同的方法对图像进行灰度插值
- matlab进行插值
- MATLAB数据插值
- matlab对数据进行归一化方法
- mysql分别对分一组的数据进行更新
- Matlab数据插值-内插、外插
- Python对数据进行插值和下采样
- Matlab二维数据插值
- matlab 使用interp2进行2维数组的插值
- Matlab插值方法大全
- 离散数据点的曲面插值Matlab示例程序
- 使用Properties和uniform来对着色器进行输入 附带介绍颜色插值混合的方法
- 鸽巢排序:对一组集中且重复的数据进行排序
- 【杂谈】MATLAB插值方法简介
- 对数据分布进行可视化的方法
- eclipse使用7.0编译项目报错:Duplicate methods named spliterator with the parameters
- C语言,进制转换之十六进制转二进制,完整代码
- App开发团队必须知道的 iOS 11 更新点
- ubantu 下pip的卸载
- 盼盼github入门到精通
- MATLAB对一组数据进行插值的方法
- 指针的一些知识
- SSH框架的基础使用
- 编写函数,求给定字符串中最长的单词;
- CQYZ【复赛模拟题】指认坏人+【zjoi2008】骑士
- 【Java学习笔记】39:简易Socket编程(基于java.net下的Socket和ServerSocket)
- [Usaco2009 Feb]庙会捷运Fair Shuttle
- 运算符优先级图解
- Servlet第四天