一次方程组求解程序
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
然后就可求出每个未知数的值。
(山东 王清华)