Home » Archimedes archive » Archimedes World » AW-1996-11.adf » !AcornAns_AcornAns » LinReg1

LinReg1

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Archimedes World » AW-1996-11.adf » !AcornAns_AcornAns
Filename: LinReg1
Read OK:
File size: 02D5 bytes
Load address: 0000
Exec address: 0000
File contents
   10MODE 18
   20n%=100
   30DIM u(n%-1), v(n%-1)
   40:
   50REPEAT
   60 :
   70 a=RND(1)*2*PI:cs=COS(a):sn=SIN(a)
   80 c=RND(200)-100
   90 xr=RND(800)
  100 yr=RND(800)
  110 ORIGIN 640,512:CLS
  120 FOR i%=0 TO n%-1
  130  x=RND(xr)-xr/2
  140  y=RND(yr)-yr/2
  150  u(i%)=x*sn+y*cs
  160  v(i%)=c+x*cs-y*sn
  170  PLOT 69,u(i%),v(i%)
  180 NEXT
  190 :
  200 ub=0
  210 vb=0
  220 p=0
  230 q=0
  240 FOR i%=0 TO n%-1
  250  ub+=u(i%)
  260  vb+=v(i%)
  270  p +=v(i%)*v(i%)-u(i%)*u(i%)
  280  q +=u(i%)*v(i%)
  290 NEXT
  300 ub=ub/n%
  310 vb=vb/n%
  320 p=p/n%+ub*ub-vb*vb
  330 q=2*(q/n%-ub*vb)
  340 t=SQR(p*p/(p*p+q*q))
  350 a=SQR((1+t)/2)
  360 b=SQR((1-t)/2)
  370 IF p<0 SWAP a,b
  380 IF q>0 a=-a
  390 c=ub*a+vb*b
  400 :
  410 x=-640
  420 MOVE x,(c-a*x)/b
  430 x=640
  440 DRAW x,(c-a*x)/b
  450 PRINT p;" ",q
  460 PRINT a;" ",b;" ",c:k%=GET
  470 :
  480UNTIL FALSE
  490:
  500END

� 18

n%=100
� u(n%-1), v(n%-1)
(:
2�
< :
F a=�(1)*2*�:cs=�(a):sn=�(a)
P c=�(200)-100
Z xr=�(800)
d yr=�(800)
n ȑ 640,512:�
x � i%=0 � n%-1
�  x=�(xr)-xr/2
�  y=�(yr)-yr/2
�  u(i%)=x*sn+y*cs
�  v(i%)=c+x*cs-y*sn
�  � 69,u(i%),v(i%)
� �
� :
�	 ub=0
�	 vb=0
� p=0
� q=0
� � i%=0 � n%-1
�  ub+=u(i%)
  vb+=v(i%)
!  p +=v(i%)*v(i%)-u(i%)*u(i%)
  q +=u(i%)*v(i%)
" �
,
 ub=ub/n%
6
 vb=vb/n%
@ p=p/n%+ub*ub-vb*vb
J q=2*(q/n%-ub*vb)
T t=�(p*p/(p*p+q*q))
^ a=�((1+t)/2)
h b=�((1-t)/2)
r � p<0 Ȕ a,b
| � q>0 a=-a
� c=ub*a+vb*b
� :
� x=-640
� � x,(c-a*x)/b
�
 x=640
� � x,(c-a*x)/b
� � p;" ",q
� � a;" ",b;" ",c:k%=�
� :
�� �
�:
��
�
00000000  0d 00 0a 08 eb 20 31 38  0d 00 14 0a 6e 25 3d 31  |..... 18....n%=1|
00000010  30 30 0d 00 1e 16 de 20  75 28 6e 25 2d 31 29 2c  |00..... u(n%-1),|
00000020  20 76 28 6e 25 2d 31 29  0d 00 28 05 3a 0d 00 32  | v(n%-1)..(.:..2|
00000030  05 f5 0d 00 3c 06 20 3a  0d 00 46 1f 20 61 3d b3  |....<. :..F. a=.|
00000040  28 31 29 2a 32 2a af 3a  63 73 3d 9b 28 61 29 3a  |(1)*2*.:cs=.(a):|
00000050  73 6e 3d b5 28 61 29 0d  00 50 11 20 63 3d b3 28  |sn=.(a)..P. c=.(|
00000060  32 30 30 29 2d 31 30 30  0d 00 5a 0e 20 78 72 3d  |200)-100..Z. xr=|
00000070  b3 28 38 30 30 29 0d 00  64 0e 20 79 72 3d b3 28  |.(800)..d. yr=.(|
00000080  38 30 30 29 0d 00 6e 11  20 c8 91 20 36 34 30 2c  |800)..n. .. 640,|
00000090  35 31 32 3a db 0d 00 78  12 20 e3 20 69 25 3d 30  |512:...x. . i%=0|
000000a0  20 b8 20 6e 25 2d 31 0d  00 82 12 20 20 78 3d b3  | . n%-1....  x=.|
000000b0  28 78 72 29 2d 78 72 2f  32 0d 00 8c 12 20 20 79  |(xr)-xr/2....  y|
000000c0  3d b3 28 79 72 29 2d 79  72 2f 32 0d 00 96 15 20  |=.(yr)-yr/2.... |
000000d0  20 75 28 69 25 29 3d 78  2a 73 6e 2b 79 2a 63 73  | u(i%)=x*sn+y*cs|
000000e0  0d 00 a0 17 20 20 76 28  69 25 29 3d 63 2b 78 2a  |....  v(i%)=c+x*|
000000f0  63 73 2d 79 2a 73 6e 0d  00 aa 16 20 20 f0 20 36  |cs-y*sn....  . 6|
00000100  39 2c 75 28 69 25 29 2c  76 28 69 25 29 0d 00 b4  |9,u(i%),v(i%)...|
00000110  06 20 ed 0d 00 be 06 20  3a 0d 00 c8 09 20 75 62  |. ..... :.... ub|
00000120  3d 30 0d 00 d2 09 20 76  62 3d 30 0d 00 dc 08 20  |=0.... vb=0.... |
00000130  70 3d 30 0d 00 e6 08 20  71 3d 30 0d 00 f0 12 20  |p=0.... q=0.... |
00000140  e3 20 69 25 3d 30 20 b8  20 6e 25 2d 31 0d 00 fa  |. i%=0 . n%-1...|
00000150  0f 20 20 75 62 2b 3d 75  28 69 25 29 0d 01 04 0f  |.  ub+=u(i%)....|
00000160  20 20 76 62 2b 3d 76 28  69 25 29 0d 01 0e 21 20  |  vb+=v(i%)...! |
00000170  20 70 20 2b 3d 76 28 69  25 29 2a 76 28 69 25 29  | p +=v(i%)*v(i%)|
00000180  2d 75 28 69 25 29 2a 75  28 69 25 29 0d 01 18 15  |-u(i%)*u(i%)....|
00000190  20 20 71 20 2b 3d 75 28  69 25 29 2a 76 28 69 25  |  q +=u(i%)*v(i%|
000001a0  29 0d 01 22 06 20 ed 0d  01 2c 0d 20 75 62 3d 75  |)..". ...,. ub=u|
000001b0  62 2f 6e 25 0d 01 36 0d  20 76 62 3d 76 62 2f 6e  |b/n%..6. vb=vb/n|
000001c0  25 0d 01 40 17 20 70 3d  70 2f 6e 25 2b 75 62 2a  |%..@. p=p/n%+ub*|
000001d0  75 62 2d 76 62 2a 76 62  0d 01 4a 15 20 71 3d 32  |ub-vb*vb..J. q=2|
000001e0  2a 28 71 2f 6e 25 2d 75  62 2a 76 62 29 0d 01 54  |*(q/n%-ub*vb)..T|
000001f0  17 20 74 3d b6 28 70 2a  70 2f 28 70 2a 70 2b 71  |. t=.(p*p/(p*p+q|
00000200  2a 71 29 29 0d 01 5e 11  20 61 3d b6 28 28 31 2b  |*q))..^. a=.((1+|
00000210  74 29 2f 32 29 0d 01 68  11 20 62 3d b6 28 28 31  |t)/2)..h. b=.((1|
00000220  2d 74 29 2f 32 29 0d 01  72 11 20 e7 20 70 3c 30  |-t)/2)..r. . p<0|
00000230  20 c8 94 20 61 2c 62 0d  01 7c 0f 20 e7 20 71 3e  | .. a,b..|. . q>|
00000240  30 20 61 3d 2d 61 0d 01  86 10 20 63 3d 75 62 2a  |0 a=-a.... c=ub*|
00000250  61 2b 76 62 2a 62 0d 01  90 06 20 3a 0d 01 9a 0b  |a+vb*b.... :....|
00000260  20 78 3d 2d 36 34 30 0d  01 a4 12 20 ec 20 78 2c  | x=-640.... . x,|
00000270  28 63 2d 61 2a 78 29 2f  62 0d 01 ae 0a 20 78 3d  |(c-a*x)/b.... x=|
00000280  36 34 30 0d 01 b8 12 20  df 20 78 2c 28 63 2d 61  |640.... . x,(c-a|
00000290  2a 78 29 2f 62 0d 01 c2  0e 20 f1 20 70 3b 22 20  |*x)/b.... . p;" |
000002a0  22 2c 71 0d 01 cc 19 20  f1 20 61 3b 22 20 22 2c  |",q.... . a;" ",|
000002b0  62 3b 22 20 22 2c 63 3a  6b 25 3d a5 0d 01 d6 06  |b;" ",c:k%=.....|
000002c0  20 3a 0d 01 e0 07 fd 20  a3 0d 01 ea 05 3a 0d 01  | :..... .....:..|
000002d0  f4 05 e0 0d ff                                    |.....|
000002d5