-
Notifications
You must be signed in to change notification settings - Fork 0
/
Solving n equation n unknown system
59 lines (59 loc) · 1.14 KB
/
Solving n equation n unknown system
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
PRINT " M-GUS - JORDAN "
KEY OFF:CLS:COLOR 9,0:BEEP
A$=TIME$
INPUT N
DIM T(N+2,N+2)
FOR V=1 TO N
FOR W=1 TO N+1
READ T(V,W):PRINT T(V,W);:NEXT W:PRINT :NEXT V
FOR I=1 TO N-1
IF T(I,I)<>0 THEN 160
X=X+1 : IF X+1>N THEN 580
FOR E=1 TO N+1 :SWAP T(I,E), T(I+X,E):NEXT E
QQ=QQ+1 :GOTO 120
X=0
FOR K=I+1 TO N
FOR L=N+1 TO 1 STEP -1
T(K,L)=T(K,L)-(T(K,L)*(T(I,L)/T(I,I)))
NEXT L,K,I
PRINT " ------------------------------- "
PRINT
FOR V=1 TO N
FOR W=1 TO N+1
PRINT T(V,W);SPC(2);
NEXT W :PRINT:NEXT V
DET=1
FOR S=1 TO N
DET=DET*T(S,S)
NEXT S
PRINT "DET=";DET
IF DET=0 THEN 580
X=0:PRINT " ------------------------------- "
FOR K=N TO 2 STEP -1
IF T(K,K)<>0 THEN 380
X=X+1 : IF X+K-1>N THEN 580
FOR E=1 TO N+1 :SWAP T(K,E),T(K-X,E):NEXT E
GOTO340
FOR I=1 TO K-1
FOR J=1 TO N+1
IF J=K THEN 420
T(I,J) = T(I,J)- (T(K,J)*(T(I,K)/T(K,K))):GOTO 430
U=I : V=J
NEXT J
T(U,V)=0
NEXT I
NEXT K
FOR V=1 TO N
FOR W=1 TO N+1
PRINT T(V,W);SPC(2)
NEXT W
PRINT
NEXT V
FOR I=1 TO N
X =T(I,N+1)/T(I,I)
PRINT "X(";X;")=";X
NEXT I:PRINT A$,TIME$
LIST 600
PRINT" no answer ......":;LIST 600
PRINT
DATA 0,0,-10,-30,0,1,1,1,1,-4,0,-8,3,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,12,33,4,4,5,5,6,6