电阻网络计算程序说明
 
黄晨 * 20064
( * 上海计算机博弈研究所,eMailwebmaster@elephantbase.net)
 
 
  这是一个用矩阵计算电阻网络表观电阻值的程序,具体的原理可参阅《电阻网络的简化方法》一文。我写的这个程序只涉及到矩阵最简单最基本的算法——高斯列主元消除法,而效率更高的算法应当使用稀疏矩阵,由于能力所限我没有去做。尽管这个程序在算法上有很大的缺陷,但用来测试处理器的符点运算能力是足够了,因为矩阵运算中会涉及到大量加减乘除的符点运算。
  至于程序的由来,还必须从一类高中物理竞赛题目说起,如上图所示的二维无限电阻网络,每一小段(接点之间的线路,如FG)的电阻是1W,求相邻两接点间(FG)的表观电阻。这个问题并不简单,由于FG不仅仅由一段1W的电阻相连,电流还可以走其他的路径,如F-B-C-G,所以表观电阻肯定小于1W。那么这道题到底如何解呢?
  可以假设对F点输入1A的恒定电流,在G点输出,求得FG两点间的电压就能算出表观电阻。这个模型可以分解成两部分,一是电流从F点流入,在网络的无穷远处流出。由于网络的对称性,电流在F点会平均分解成4个支路FEFBFGFJ,支路上的电流都是0.25A。再考察电流从网络的无穷远处流入,在G点流出的情况,同样在FG支路上的电流也是0.25A(和前一种情况一样,电流从F流向G)。把这两种情况叠加,就构成了现在电流从F流入、从G流出的情况,此时每个支路上的电流也将是两种情况对应支路上的叠加,因此FG支路上的电流是0.5A。这样就很容易得到,FG两点的电压是0.5V,因此FG两点在整个网络中的表观电阻是0.5W
  尽管我自认为高中物理已经滚瓜烂熟了,但是进入大学后我收到一位高中同学的求教,看似类似的题目却让我不知所措。题目类型是和上题一模一样的电阻网络,而所求的却不是接点FG间的表观电阻,而是在接点FK间的!事实上这道崭新的题目根本无法用原来的思路来解,如果当我们仍旧固执地考虑,向F点输入1A的恒定电流并在无穷远处输出,电流在F点平均分成4个支路,那么在G点却遇到了麻烦,即便GCGK具有对称性,我们也不知道电流是多少,因为GH上的电流也是未知的。
  六七年过去了,尽管我还是没有解开这个谜团,但是这类问题已经不再捆绕我了,当严格的求解无法得到精确答案时,我们至少可以通过数值求解的办法得到相对准确的结果。在这个程序中,我构造了一个2nx2n的电阻网络,借助矩阵求对角的两点间的表观电阻,当n充分大时,求得的电阻值就会非常接近无限网络的结果。