36 lines
755 B
Plaintext
36 lines
755 B
Plaintext
10 LET d=2000: GO SUB 1000: GO SUB 4000: GO SUB 5000
|
|
20 LET d=3000: GO SUB 1000: GO SUB 4000: GO SUB 5000
|
|
30 STOP
|
|
1000 RESTORE d
|
|
1010 READ a,b
|
|
1020 DIM m(a,b)
|
|
1040 FOR i=1 TO a
|
|
1050 FOR j=1 TO b
|
|
1060 READ m(i,j)
|
|
1070 NEXT j
|
|
1080 NEXT i
|
|
1090 RETURN
|
|
2000 DATA 3,3,25,15,-5,15,18,0,-5,0,11
|
|
3000 DATA 4,4,18,22,54,42,22,70,86,62,54,86,174,134,42,62,134,106
|
|
4000 REM Cholesky decomposition
|
|
4005 DIM l(a,b)
|
|
4010 FOR i=1 TO a
|
|
4020 FOR j=1 TO i
|
|
4030 LET s=0
|
|
4050 FOR k=1 TO j-1
|
|
4060 LET s=s+l(i,k)*l(j,k)
|
|
4070 NEXT k
|
|
4080 IF i=j THEN LET l(i,j)=SQR (m(i,i)-s): GO TO 4100
|
|
4090 LET l(i,j)=(m(i,j)-s)/l(j,j)
|
|
4100 NEXT j
|
|
4110 NEXT i
|
|
4120 RETURN
|
|
5000 REM Print
|
|
5010 FOR r=1 TO a
|
|
5020 FOR c=1 TO b
|
|
5030 PRINT l(r,c);" ";
|
|
5040 NEXT c
|
|
5050 PRINT
|
|
5060 NEXT r
|
|
5070 RETURN
|