对第四种情况,删去该行即可。
重要的是对第二种、第三种情况的处理。不同的处理体现了不同的非单调、超协调策略。首先对第三种情况进行处理。对超协调性的解决方法是维护协调性。最简单的处理方法是删去该行,则方程组中消除了超协调的情况。则相当于当变量同时取两个值时,任意删除其中的一个赋值。
(4)处理无穷解的情况。
处理完第一、第三、第四种情况后,则新的方程组中就只剩下第二种情况。对非单调的解决方法是扩充不完全的知识。给出一批缺省规则(一般是对每个变量给一个缺省值)和相应的优先级,对于有无穷解的变量组,选择与该变量组中变量相关的优先级最高的缺省规则(优先级相同时可按变量顺序选择或随机选择),加入方程组中。若无穷解的变量组为空,则所有变量都已有唯一解,算法结束。否则转到步骤1继续处理。
由上述算法可知,当所有变量都有唯一解时,运算与高斯消元法一样。只是在非单调、超协调的情况下,采取了相应的处理策略。具体来说,在新方程中对第二种情形的处理即是对非单调知识的处理,借用了非单调逻辑中缺省理论的方法。而对第三种情形的处理即是对超协调知识的处理,则是超协调逻辑中分域逻辑的一种简化。
从理论上讲,改进的高斯消元法实质是建立在一种新的公理体系的基础上,因为它限制了方程的和差乘除仍为方程的公理的运用范围,从而达到能处理非单调、超协调的情形。传统的高斯消元法实质就是不断应用不同行相消产生新方程,最终产生只含一个变量的方程,而在非单调和超协调的情况下(即满秩情形),或者会出现无论如何变换最终仍含多个变量的方程,这时必须停止不同行相消,利用缺省规则加入新的方程后再继续计算;或者会出现矛盾方程(即方程左端无变量而右端不为零的方程),这时必须禁止矛盾方程与其它行相消。以上所述即是要限制公理的使用范围,这种思想是从非单调、超协调逻辑中借用来的。而在单调、协调的情况下,它与传统的高斯消元法完全一致。
定理1:该算法在满秩时等价于传统的高斯消元法。
证明:在满秩时, m=n。
对于改进后的消下三角矩阵法, i、j均从0出发,由于矩阵中不会出现一列中无非零值的情形(否则矩阵不满秩),则每列操作i、j均加1,当处理完n列时, i=m=n, j=n,消下三角矩阵法中止。故与改进前的消下三角矩阵法完全相同。
对于改进后的消上三角矩阵法,由于m=n , i、j均视为从m出发,由于矩阵中不会出现一列中无非零值的情形(否则矩阵不满秩),则每列操作i、j均减1,当处理完n列时, i=0, j=0,消上三角矩阵法中止。故与改进前的消上三角矩阵法完全相同。
分析新方程时,只存在第一种情形,处理也同传统的高斯消元法相同。不存在处理无穷解的情况。
综上所述,该算法在满秩时等价于传统的高斯消元法。
定理2:该算法在非满秩时能保证对单调、协调的变量的求解的正确性。
证明:改进后的消下三角矩阵法和消上三角矩阵法中采用的不同列相消不会影响变量的值(否则变量就不是单调、协调的)。
消元后的变量处于新方程组的第一种情况中,采用的求解方法与传统的高斯消元法一致,故能保证它的正确性。
综上所述,该算法在非满秩时能保证对单调、协调的变量的求解的正确性。
2 应 用
在工程设计的参数化造型中,图纸的绘制是由基本拓扑结构的绘制和长度、角度等约束关系的加入两个构成的,然后计算机自动根据长度、角度等约束关系(即数据)修正原草图,形成精确的工程图纸。在基本拓扑结构的绘制过程中,长度、角度等具体尺寸不必精确,这样大大节省了绘制时间,并便于修改。
以下我介绍改进的高斯消元法在参数化造型中的应用。
在工程上,一些尺寸是要求精确的,而有些尺寸却不要求精确,这时往往希望不输入这些尺寸值而利用原始草图中的粗略值,这在工程上就是处理约束不足的情形。另一方面,由于图纸的复杂,输入的各种尺寸或约束关系很可能出错,这在工程上是约束冲突,这时希望能发现错误。
在工程上,约束大多以方程的方式表示,约束的处理从另一个方面看就是对求解方程组,而方程大多可通过求导、求积等形式化为多元一次方程。方程组的非单调性说明约束不足,方程组的超协调性说明约束冲突。约束不足就应该加入新的约束,约束冲突就应该删去某些约束,维护其协调性,都是对约束的增减。