本发明涉及计算机技术领域,具体涉及一种基于矩阵理论的插值数据文件格式定义方法。
背景技术:
在生产实践和科学研究中,某一变量(或函数)有时不能直接给出表达式,而只能给出函数在若干个点上的函数值或导数值,实践中,通常采用多项式插值、样条插值等相应的数值分析方法对插值数据进行计算,以获得变量(或函数)在不同的被插点上的数值,插值算法在数值计算、图像处理、建模仿真、计算机科学计算等各领域均有广泛应用。
插值算法依据所研究的函数自变量的个数可分为一维插值、二维插值,乃至多维插值,与之相对应的插值数据亦可分为一维插值数据、二维插值数据等等,以空气动力学计算为例,一个物体在某一方向上所受的某一气动力系数与其速度、姿态等状态相关,可通过试验获得气动系数在不同速度、姿态等状态上的数值。在不同的研究阶段或应用背景下,插值数据常面临跨平台使用的需求,以建模仿真为例,在系统建模阶段,由于windows操作系统的广泛应用,一般以其作为模型开发平台,而在模型校验阶段,一般以linux+rtai或vxworks等实时操作系统作为模型运行平台进行实时半实物仿真。
插值数据的处理通常有表1所示的两种方式,两者各有优缺点,在实际工程中均有应用,第二种方式重点在于定义一种合理的插值数据文件格式以充分表达插值数据属性,满足各种插值算法的需要。专利(公开号为cn104881464a)申请描述了一种数据文件格式定义方法,通过一个配置文件加数据文件的方式表达数据属性,其中,配置文件描述了数据文件中数据格式、数据类型、长度、有效值范围等信息,若利用该方法描述插值数据,则仅能描述二维插值数据,无法描述多维插值数据。
表1插值数据处理的常见方式及其优缺点
基于此,如何设计一种简单、明晰的多维插值数据表达方法,在一个文件中描述一个任意维数的插值变量(或函数)所需的全部插值数据,便利插值数据的规范化跨平台使用需求,成为了亟待解决的技术问题。
技术实现要素:
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种简单、明晰的多维插值数据表达方法,在一个文件中描述一个任意维数的插值变量(或函数)所需的全部插值数据,便利插值数据的规范化跨平台使用需求。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于矩阵理论的插值数据文件格式定义方法,包括数据文件基本格式定义步骤以及插值数据格式编排步骤;
所述数据文件基本格式定义步骤包括:
插值数据文件名定义:所述插值数据文件名与插值变量或函数相关,用于区分不同数据文件,按变量名或函数名命名规范定义;
文件扩展名设计:采用.txt或.dat文件格式设计;
文件编码格式设计:采用ascii编码格式设计;
所述插值数据格式编排步骤包括:
文件内容区块划分:将插值数据文件内容自上而下分为三个区域,各区域之间以连续两个空行分隔:
变量维数区:定义插值数据的维数以及各维插值节点的个数;
插值节点区:定义各维插值节点的数值;
变量数值区:定义插值数据在各维度的各插值节点下的函数值或导数值。
优选地,所述插值数据格式编排步骤中,所述变量维数区占据两行,第一行为该插值数据的维数,以变量n表示,第二行为各维插值节点的个数,以numi表示,i=1,2,…,n表示第i维,各数值之间以一个空格区分,一个‘□’表示一个空格,则变量维数区为:
n
num1□num2…□numi□…numn
优选地,所述插值数据格式编排步骤中,所述插值节点区占据n行,每行对应一个维度,第i行共有numi个数值,以xi表示第i维各插值节点的数值,即
优选地,所述插值数据格式编排步骤中,设一个n维插值数据y在各维度插值节点下的函数值或导数值组成n维矩阵
其中,矩阵
按此方式逐步划分,当n≥3时,共可划分
插值数据在各维度的各插值节点下的函数值或导数值以二维矩阵的形式按顺序依次排列,各数值之间以一个空格区分,各二维矩阵之间以连续两个空行分隔,以
(三)有益效果
本发明提出一种简单、明晰的多维插值数据表达方法,该方法利用矩阵理论对多维插值数据进行化简,用多个二维矩阵表达插值变量在各维度各插值节点下的函数值或导数值,通过合理的文件内容区块划分,在一个文件中描述一个任意维数的插值变量(或函数)所需的全部插值数据,从而实现了在一个文件中描述一个任意维数的插值变量(或函数)所需的全部插值数据,便利了插值数据的规范化跨平台使用需求。
附图说明
图1为气动参数值矩阵排列示意图。
图2为一维气动参数插值文件示例截图;
图3为二维气动参数插值文件示例截图;
图4为三维气动参数插值文件示例截图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明的基于矩阵理论的插值数据文件格式定义方法包括数据文件基本格式定义以及插值数据编排格式设计两大步骤。
(1)数据文件基本格式定义:
1)文件名定义
插值数据文件名与所研究的插值变量(或函数)相关,用于区分不同数据文件。文件名命名格式参考相关领域内变量名命名标准规范,易于理解,以某气动力系数
2)文件扩展名设计
文件扩展名采用.txt或.dat等通用文件格式。
3)文件编码设计
文件编码格式采用最基本的ascii编码格式,以最大可能保证数据文件的平台通用性。
(2)插值数据编排格式设计:
1)文件内容区块划分
数据文件内容自上而下,共分为三个区域,各区域之间以连续两个空行分隔:
变量维数区:
该区域占据两行,第一行为该插值变量的维数,以变量n表示,第二行为各维插值节点的个数,以numi表示,i=1,2,…,n表示第i维,各数值之间以一个空格区分,格式如下,其中一个‘□’表示一个空格(下同):
n
num1□num2…□numi□…numn
插值节点区:
该区域占据n行,每行对应一个维度,第i行共有numi个数值,以xi表示第i维各插值节点的数值,即
变量数值区:
某n维插值变量y在各维度插值节点下的函数值或导数值组成n维矩阵
其中,矩阵
按上述方法逐步划分,如图1所示,当n≥3时,共可划分
插值变量在各维度各插值节点下的函数值或导数值以二维矩阵的形式按上述顺序依次排列,各数值之间以一个空格区分,各二维矩阵之间以连续两个空行分隔,以
依据上述方法和步骤,如下给出了常用的一维、二维、三维插值数据文件示例。
(1)一维插值数据文件示例
一维插值数据文件示例如图2所示,该参数共有4个插值节点,分别为0.4000000.6000000.7000000.800000,其对应的函数值或导数值分别为0.31120.36260.36620.4112。
(2)二维插值数据文件示例
二维插值数据文件示例如下图3所示,该参数第一维有10个插值节点,分别为-4.000000-2.0000000.0000001.0000002.0000003.0000004.0000006.0000008.00000010.000000,第二维有5个插值节点,分别为0.0000002.0000004.0000006.0000008.000000,对应的函数值或导数值组成10行5列的二维矩阵。矩阵中数值0.095600对应的插值节点为(4.000000,2.000000)。
(3)三维插值数据文件示例
三维插值数据文件示例如图4所示,各维插值节点个数分别为5、4、3,变量数值区共有3个二维矩阵,每个矩阵均为5行4列,第二个矩阵中参数值0.058800对应的插值节点为(2.000000,10.000000,0.700000)。
可以看出,采用本发明的方法可克服专利(公开号cn104881464a)的不足,利用矩阵理论,用多个二维矩阵表达插值变量在各维度各插值节点下的函数值或导数值,通过合理的文件内容区块划分,在一个文件中描述一个任意维数的插值变量(或函数)所需的全部插值数据,便利插值数据的规范化跨平台使用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。