RosettaCodeData/Task/Multiple-regression/Chipmunk-Basic/multiple-regression.basic

69 lines
1.6 KiB
Plaintext

100 cls
110 n = 14 : m = 2 : q = 3 ' number of points and M.R. polynom degree
120 dim x(n)' data points
130 data 1.47,1.5,1.52,1.55,1.57,1.6,1.63,1.65,1.68,1.7,1.73,1.75,1.78,1.8,1.83
140 for c = 0 to n
150 read x(c)
160 next c
170 dim y(n)' data points
180 data 52.21,53.12,54.48,55.84,57.2,58.57,59.93,61.29,63.11,64.47,66.28,68.1,69.92,72.19,74.46
190 for c = 0 to n
200 read y(c)
210 next c
220 dim s(n) : dim t(n)' linear system coefficient
230 dim a(m,q)' sistem to be solved
240 dim p(m,q)
250 for k = 0 to 2*m
260 s(k) = 0 : t(k) = 0
270 for i = 0 to n
280 s(k) = s(k)+x(i)^k
290 if k <= m then t(k) = t(k)+y(i)*x(i)^k
300 next i
310 next k
320 ' build linear system
330 for fila = 0 to m
340 for columna = 0 to m
350 a(fila,columna) = s(fila+columna)
360 next columna
370 a(fila,columna) = t(fila)
380 next fila
390 print "Linear system coefficents:"
400 for i = 0 to m
410 for j = 0 to m+1
420 print using "######.#";a(i,j);
430 next j
440 print
450 next i
460 for j = 0 to m
470 for i = j to m
480 if a(i,j) <> 0 then goto 500
490 next i
500 if i = m+1 then
510 print : print "SINGULAR MATRIX '"
520 end
530 endif
540 for k = 0 to m+1
560 p(j,k) = a(i,k)
570 a(i,k) = p(j,k)
580 a(j,k) = a(i,k)
590 next k
600 z = 1/a(j,j)
610 for k = 0 to m+1
620 a(j,k) = z*a(j,k)
630 next k
640 for i = 0 to m
650 if i <> j then
660 z = -a(i,j)
670 for k = 0 to m+1
680 a(i,k) = a(i,k)+z*a(j,k)
690 next k
700 endif
710 next i
720 next j
730 print : print "Solutions:"
740 for i = 0 to m
750 print using " #####.#######";a(i,m+1);
760 next i
770 print
780 end