发明名称 一种基于降维的二维插值方法
摘要 本发明涉及一种基于降维的二维插值方法。对在MAP表中查不到的值进行插值计算。本发明的技术解决方案是:获取输入值和输出值之间的二维关系表,将二维关系表值组织为MAP表形式,通过查表代替计算,提高系统运行效率,在查表失败时,采用牛顿插值的方法进行降维差值计算;本发明采用的插值计算方法,计算过程简单,精度易于控制;此降维插值方法可以推广到三维或更多维数插值计算中,插值方法也可以根据应用情况采用拉格朗日插值等其他插值方法。
申请公布号 CN104714967A 申请公布日期 2015.06.17
申请号 CN201310689741.0 申请日期 2013.12.14
申请人 中国航空工业集团公司第六三一研究所 发明人 刘明;李娟;王瑞;张鹏仙
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 西安智邦专利商标代理有限公司 61211 代理人 杨引雪
主权项 一种基于降维的二维插值方法,其特征在于:包括以下步骤:1】通过实验获取输入值和输出值之间的二维关系表,二维关系表包括两个输入值X和Y,通过X和Y组合得到输出值Z;2】将步骤1】的二维关系表值组织为MAP表形式:将所有输入值X按照递增的顺序以一维表X_Axis的形式进行存储,将所有输入值Y按照递增的顺序以一维表Y_Axis的形式进行存储,将所有输出值Z按照输入值X和Y的对应关系以一维表Z_Table的形式进行存储;一维表X_Axis的下标记为i,一维表Y_Axis的下标记为j,一维表Z_Table的下标记为k,则k=j×length_x+i,length_x表示一维表X_Axis的长度;3】根据给出的x_val值和y_val值查询对应的z_val值:3.1】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis未找到,则在一维表X_Axis中查找与x_val最邻近的两个值X<sub>i</sub>以及X<sub>i+1</sub>,在一维表Y_Axis中查找与y_val最邻近的两个值Yj以及Y<sub>j+1</sub>,在Y<sub>j</sub>点处按照公式<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>Z</mi><mi>a</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>Z</mi><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>Z</mi><mi>m</mi></msub></mrow><mrow><msub><mi>X</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub></mrow></mfrac><mrow><mo>(</mo><mi>x</mi><mo>_</mo><mi>val</mi><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>Z</mi><mi>m</mi></msub></mrow>]]></math><img file="FDA0000438015440000011.GIF" wi="650" he="126" /></maths>求取Z<sub>a</sub>,m=j×length_x+i;在Y<sub>j+1</sub>点处按照公式<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>Z</mi><mi>b</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>Z</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>Z</mi><mi>n</mi></msub></mrow><mrow><msub><mi>X</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub></mrow></mfrac><mrow><mo>(</mo><mi>x</mi><mo>_</mo><mi>val</mi><mo>-</mo><msub><mi>X</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>Z</mi><mi>n</mi></msub></mrow>]]></math><img file="FDA0000438015440000012.GIF" wi="634" he="127" /></maths>求取Z<sub>b</sub>,n=(j+1)×length_x+i;按照公式<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>z</mi><mo>_</mo><mi>val</mi><mo>=</mo><mfrac><mrow><msub><mi>Z</mi><mi>b</mi></msub><mo>-</mo><msub><mi>Z</mi><mi>a</mi></msub></mrow><mrow><msub><mi>Y</mi><mrow><mi>j</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>Y</mi><mi>j</mi></msub></mrow></mfrac><mrow><mo>(</mo><mi>y</mi><mo>_</mo><mi>val</mi><mo>-</mo><msub><mi>Y</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>Z</mi><mi>a</mi></msub><mo>,</mo></mrow>]]></math><img file="FDA0000438015440000013.GIF" wi="823" he="145" /></maths>求取z_val值;将x_val、y_val、z_val的值输出给后续应用进行处理;3.2】如果x_val值在表X_Axis未找到,y_val值在表Y_Axis找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;3.3】如果x_val值在表X_Axis找到,y_val值在表Y_Axis未找到,则采用牛顿插值求取z_val;将x_val、y_val、z_val的值输出给后续应用进行处理;3.4】如果x_val值在表X_Axis找到,y_val值在表Y_Axis找到,则根据x_val和y_val的关系查询对应的z_val,输出给后续应用进行处理。
地址 710119 陕西省西安市锦业二路15号