一次方程组求解程序

Author: 山东 王清华 Date: 1993-10-15

        程序清单如下:
        10  INPUT"一次方程组未知数个数n(n>0)=",N
        20  DIM  X(N),A(N,N+1)
        30  PRINT"输入各系数(inputAm,m):"
        40  FOR  I=1  TO  N:  FOR  J=1  TO  N+1
        50  PRINT"a"+STR$(I)+","+STR$(J);:  INPUT"=",A(I,J)
        60  NEXT:PRINT:NEXT
        70  FOR I=1 TO  N:FOR  J=1  TO  N:MM=A(J,I)
        80  IF  I=J  THEN  GOTO  100
        90  FOR  K=1  TO  N+1:A(J,K)=A(J,K)-A(I,K)MM/A(I,I):NEXTK
        100  NEXTJ,I
        110  PRINT"方程组解为(roots):"
        120  FOR  I=1  TO  N:X(I)=A(I,N+1)/A(I,I)
        130  PRINT"X"+STR$(I)+"="+STR$(X(I))
        140  NEXTI:END
        运行此程序,提示:
        一次方程组未知数个数n(n>0)=
        在此输入方程组个数,即方程组元数n(要求n>0),回车。
        接下来提示:
        输入各系数(inputAm,m):
        此处要求输入各未知数的系数:Am,m(m=1,2,…,n+1),包括常数项:Am,n+1。
        在 解 方 程 组 以 前 , 先 把 方 程 组 化 成 如 下 格 式 :
        A1,1X1+A1,2X2+…+A1,nXn=A1,n+1
        A2,1X1+A2,2X2+…+A2,nXn=A2,n+1
        …  …
        An,1X1+An,2X2+…+An,nXn=An,n+1
        分别输入以上各系数(每输入一个都要回车),即可得各未知数的解。
        此程序的设计利用解方程组中的加减消元法,分别用第m(m=1,2,…,n)个方程式去消去其他方程式的Xm(m=1,2,…,n)未知数,最终化为如下形式:
        B1,1X1=B1,n+1
        …  …
        Bn,nXn=Bn,n+1
        然后就可求出每个未知数的值。
        (山东  王清华)