10 REM **********
ΠΡΟΓΡΑΜΜΑ Π308 **********
20 REM * *
30 REM *
Μέθοδος του Cholesky *
40 REM * Α = Θετικά ορισμένος και συμμετρικός *
50 REM
* *
60 REM
****************************************
70 CLS
80 DIM
A(20,21)
90 INPUT "Δώσε τον αριθμό των αγνώστων";N
100 PRINT
110 NC=N+1
120 REM Διάβασε τους συντελεστές
130 FOR
I=1 TO N
140 FOR
J=I TO N
150 READ
A(I,J)
160 NEXT
J
170 READ
A(I,NC)
180 NEXT
I
190 TH=0
200 FOR
I=1 TO N
210 FOR
J=1 TO N
220
TH=TH+A(I,J)
230 NEXT
J
240 NEXT
I
250 IF
TH>0 THEN GOTO 280
260 PRINT "Ο Α δεν είναι θετικά ορισμένος"
270 STOP
280
GOSUB 350
290
PRINT"Αποτελέσματα"
300
PRINT
310 FOR
I=1 TO N
320
PRINT "X(";I;")=";A(I,NC)
330 NEXT I
340 END
350 REM Αυτό το υποπρόγραμμα υπολογίζει τη λύση
360 REM ενός γραμμικου συστήματος με Α
370 REM θετικά ορισμένο και συμμετρικό
380 REM Υπολογισμός των L(I,J)
390 FOR
I=1 TO N
400 FOR
J=I TO N
410
P1=0:P2=0
420 IF I=J
THEN GOTO 490
430 IF
I=1 THEN GOTO 470
440 FOR
K=1 TO I-1
450
P1=P1+A(I,K)*A(J,K)
460 NEXT
K
470
A(J,I)=(A(I,J)-P1)/A(I,I)
480 GOTO
560
490 IF
I=1 THEN GOTO 530
500 FOR
K=1 TO I-1
510
P2=P2+A(I,K)*A(I,K)
520 NEXT
K
530
Q0=A(I,I)-P2
540 Q=SQR(Q0)
550
A(I,I)=Q
560 NEXT
J
570 S=0
580 IF
I=1 THEN GOTO 620
590 FOR
K=1 TO I-1
600
S=S+A(I,K)*A(K,NC)
610 NEXT
K
620
A(I,NC)=(A(I,NC)-S)/A(I,I)
630 NEXT I
640 REM Πίσω αντικατάσταση
650 FOR
M=N TO 1 STEP -1
660 IF
M=N THEN GOTO 700
670 FOR JR=N
TO M+1 STEP -1
680
A(M,NC)=A(M,NC)-A(JR,M)*A(JR,NC)
690 NEXT
JR
700
A(M,NC)=A(M,NC)/A(M,M)
710 NEXT
M
720
RETURN
730
PRINT "Ευχαριστώ πολύ... γειά...":END
740 DATA 4,1,0,14
750 DATA 4,1,12
760 DATA 4,6