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