介绍一种二维线性插值计算方法

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

介绍一种二维线性插值计算方法

scanp002   2021-03-17 我要评论

插值计算方法是工程实践中经常用到的方法。当获取的原始数据为离散点状数据时,就需要通过插值计算方法来获取离散点之间的数据。常用的插值计算方法有线性插值、样条插值等,但是这些插值方法通常是一维插值方法,即y=f(x)的情况,对于二维数据即z=f(x,y)的情况应用起来存在一些困难。

首先来简单介绍一下最简单的一维插值计算方法。原始数据为一系列的散点,即(x1,y1)、(x2,y2)....(xi,yi),对于任意的x,求取其对应的y值。其计算过程为,首先求取x值位于哪两个三点之间,假如xj≤x<xj+1,则y=(x-xj)×(yj+1-yj)/(xj+1-xj)+yj。该方法可以较准确地求取任意x值对应的y值,且该方法一般只应用于内插,当x值超出原始散点x范围时,采用线性外插方法。

而对于二维插值却存在一定问题。原始数据为一系列的散点(x1,y1,z1)、(x2,y2,z2)....(xi,yi,zi),此时对于任意的(x,y)值,要想求取其对应的z值。

通常容易想到的方法是,首先基于已知的散点数据(x1,y1,z1)、(x2,y2,z2)....(xi,yi,zi),通过某种拟合方法获得一个适用的计算公式,即z=f(x,y),然后通过该公式来计算任意的(x,y)对应的z值。该方法能够一定程度上解决无法获取散点之外数据的问题。但是,该方法拟合过程引入的偏差是不可忽略的,一种检验的方法是,选取原始散点中的某一个点的数据(xj,yj,zj)进行检验,将该点的数据代入计算公式z=f(x,y)获得一个值z计算=f(xj,yj),对比可以发现z计算≠zj,且进一步计算其相对偏差量可以发现,相对偏差量(z计算 -  zj)/zj不是一个小量,某些时候甚至能够达到30%,因此该方法很难实现有效的工程应用。

本文推荐一种二维线性插值计算方法,可以有效避免原始数据代入计算结果不一致的问题。该方法适用的一个前提是,原始散点数据需满足一定特征,即某些原始散点的x值需相等,且可以基于x值将原始散点进行分组。即原始散点具备如下特征,可进行如下分组分类:

(x1,y1,z1 (x1,y2,z2   (x1,ym,zm
(x2,ym+1,zm+1 (x2,ym+2,zm+2 . (x2,y2m,z2m
    ...  
(xn,ynm-m+1,znm-m+1 (xn,ynm-m+2,znm-m+2   (xn,ynm,znm

 对于该类型的原始散点,求取对应于(x未知,y未知)值时的Z未知值,其计算过程如下

1)首先计算x值位于哪个区间,通过逐个比较获得xj≤x<xj+1;

2)对于xj所在的数组,获得其对应原始散点的y、z值组成二维散点(yjm-m+1,zjm-m+1)、(yjm-m+2,zjm-m+2)...(yjm,zjm),在该二维散点中,通过一维线性插值计算获得当y=y未知时,对应的z值为zxj,未知

3)同理,对于xj+1所在的数组,获得其对应原始散点的y、z值组成二维散点(yjm+1,zjm+1)、(yjm+2,zjm+2)...(yjm+m,zjm+m),在该二维散点中,通过一维线性插值计算获得当y=y未知时,对应的z值为zxj+1,未知

4)通过步骤(2)、(3)获得的两个点(xj,y未知,zxj,未知)、(xj+1,y未知,zxj+1,未知),与所求点(x未知,y未知,z未知),三个点必定在同一条直线上,因此可以基于(xj,y未知,zxj,未知)、(xj+1,y未知,zxj+1,未知)两点,通过一维线性插值计算获得点(x未知,y未知,z未知)的值。

以上为所述二维线性插值计算方法的全过程。

 

 

 

 

 

 

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们