首页 理论教育测量平差程序设计2版-约化式中数组下标计算

测量平差程序设计2版-约化式中数组下标计算

【摘要】:图3.18是一个5阶的法方程,若对第4行元素n进行2次约化,以图中数组变量表示的约化计算式为n=n-n。对位于第5行的数组变量n进行3次约化时,第3行第5列处数组变量下标13是第4列主对角线数组变量下标10加约化次数3。因此可以归纳得出,k行中列数等于约化行数j的数组变量,其下标计算式为m2=(j-1)*j/2+k。④k行中与被约化数组变量同列的数组变量下标计算,同样以被约化系数所在列前一列主对角线上数组变量下标为基础。

图3.18是一个5阶的法方程,若对第4行元素n(14)进行2次约化,以图中数组变量表示的约化计算式为n(14)=n(14)-n(12)。下面以此为例,分析以约化次数k、被约化行数j、j行中被约化元素所在列数i为参数,确定法方程系数、常数约化计算式中数组变量下标的方法:

图3.18 法方程系数、常数一维数组下标编排

①根据约化次数k确定k行自乘元素下标为m1=k*(k+1)/2。

②根据图3.18所示法方程系数一维数组下标的递增规律,要确定某数组变量上方同列数组变量下标,应以其前一列主对角线上数组变量下标为基础。所以k行中列数等于被约化行数j的数组变量下标计算,要以j-1列主对角线上数组变量下标(j-1)*j/2为基础。例如对位于第4行的数组变量n(14)进行2次约化时,第2行第4列处数组变量下标8,等于第3列主对角线上数组变量下标6加约化次数2。对位于第5行的数组变量n(15)进行3次约化时,第3行第5列处数组变量下标13是第4列主对角线数组变量下标10加约化次数3。因此可以归纳得出,k行中列数等于约化行数j的数组变量,其下标计算式为m2=(j-1)*j/2+k。

③确定了m1和m2,就可得出以数组变量表示的法方程常数项约化式 u(j)=u(j)-u(k)*n(m2)/n(m1)。(www.chuimin.cn)

④k行中与被约化数组变量同列的数组变量下标计算,同样以被约化系数所在列前一列主对角线上数组变量下标为基础。i是j行中被约化元素的列数,就图3.18所示法方程而言,i的初始值是j,然后从左到右直至5。遵循②中阐述的规律,知i上方k行同列数组变量下标计算以(i-1)*i/2为起点,(i-1)*i/2+k所得数组变量下标确定的元素均位于k行。令k行中与被约化系数同列数组变量下标值为n1,则n1=(i-1)*i/2+k。

⑤确定j行中被约化元素的下标与④所述类似,不同的是因为被约化元素在j行,所以在(i-1)*i/2基础上加j。令其下标值为n2,则n2=(i-1)*i/2+j。

说明:示例程序中储存法方程系数的数组变量为nx(), 以此表达的法方程系数约化式为:

x(n2)=nx(n2)-nx(n1)*nx(m2)/nx(m1)