10 REM **********
ΠΡΟΓΡΑΜΜΑ Π303 **********
20 REM * *
30 REM *
Γραμμικά Συστήματα *
40 REM *
Μέθοδος απαλοιφής του Gauss *
50 REM *
Mε ολική οδήγηση *
60 REM * *
70 REM
***************************************
80 CLS
90 DIM
A(25,25),X(25),IPIVOT(25)
100 EPS=.0000001
110 INPUT "Δώσε τον αριθμό των εξισώσεων";N
120
NC=N+1
130
PRINT
140 FOR
I=1 TO N
150 FOR
J=1 TO N
160 READ
A(I,J)
170 NEXT
J
180 READ
A(I,NC)
190 NEXT
I
200 FOR
I=1 TO N
210
IPIVOT(I)=I
220 NEXT
I
230
GOSUB 340
240
PRINT " Αποτελέσματα"
250
PRINT
260 FOR
M=1 TO N
270
PRINT "X(";IPIVOT(M);")=";X(IPIVOT(M))
280 PRINT
290 NEXT M
300 END
310 PRINT "Η ορίζουσα του Α είναι μηδέν "
320 END
330 REM Απαλοιφή Gauss με ολική οδήγηση
340 FOR
JR=1 TO N-1
350 W=0
360 LC=0
370 FOR
I=JR TO N
380 FOR
J=JR TO N
390 IF
ABS(A(I,J))>W THEN GOTO 410
400 GOTO
440
410
IROW=I
420
JCOL=J
430
W=ABS(A(I,J))
440 NEXT
J
450 NEXT
I
460 IF
JCOL=JR AND IROW=JR THEN GOTO 650
470 IF
IROW=JR THEN GOTO 550
480 REM Αλλαγή γραμμών
490 IF
JCOL=JR THEN LC=1
500 FOR
J=1 TO NC
510
W=A(JR,J)
520
A(JR,J)=A(IROW,J)
530
A(IROW,J)=W
540 NEXT
J
550 REM Αλλαγή στηλών
560 IF
LC=1 THEN GOTO 650
570
IT=IPIVOT(JCOL)
580
IPIVOT(JCOL)=IPIVOT(JR)
590
IPIVOT(JR)=IT
600 FOR
I=1 TO N
610
W=A(I,JR)
620
A(I,JR)=A(I,JCOL)
630
A(I,JCOL)=W
640 NEXT
I
650 REM Απαλοιφή
660 FOR
I=JR TO N-1
670 IF
ABS(A(JR,JR))<EPS THEN GOTO 310
680
P=A(I+1,JR)/A(JR,JR)
690 FOR
J=JR+1 TO NC
700
A(I+1,J)=A(I+1,J)-P*A(JR,J)
710 NEXT
J
720 NEXT
I
730 NEXT
JR
740 REM Πίσω αντικατάσταση
750 FOR
M=N TO 1 STEP -1
760 IF
M=N THEN GOTO 800
770 FOR
L=N TO M+1 STEP -1
780
A(M,NC)=A(M,NC)-A(M,L)*X(IPIVOT(L))
790 NEXT
L
800 IF
ABS(A(M,M))<EPS THEN GOTO 310
810
X(IPIVOT(M))=A(M,NC)/A(M,M)
820 NEXT
M
830
RETURN
840 DATA
1,-3,2,-5,6
850 DATA
-3,2,-1,2,-3
860 DATA 2,-1,4,-2,11
870 DATA -5,2,-2,6,-15