'A Equação de Diferença da Logística Padrão 'Este programa exercita a equação de diferença x = rx (1 - x) para valores de 'r diferentes [r foi renomeado c no applet]. Para r < 2,1 produz a curva sig- 'moide familiar utilizada para representar o crescimento das populações, a 'demanda do mercado e uma miríade de outras coisas. Para 2,1 < r < 2,9, a curva 'sobe ao máximo, depois segue uma oscilação moribunda que eventualmente se 'estabelece em um valor constante. Para 2,9 < r < 3,4 a curva sobe como de 'costume, mas estabelece-se para uma oscilação regular. Para 3,4 < r < 3,6, a 'oscilação torna-se cada vez mais complexa, em um ponto adotando um tipo de 'ritmo de valsa. De 3,7 < r < 4 oscilações regulares dão lugar ao comportamento 'caótico. Para r < 4, isto torna-se tão extremo que a "população" logo atinge 'zero e assim destrói-se. 'StdLog.BAS screen 9,3 : color 7,1 : window (-50,-200) - (+350,+200) xy = 4/5 'aspect ratio of IBM PC CGA screen bias1 = 42 bias2 = -150 s = 4 gosub FrameSub a: locate 17,40 : input"r = ",r$ : if r$="" then end LOCATE 18,40 : input"x = ",x$ : if x$ = "" then x$ = ".001" gosub FrameSub r = val(r$) OldX = val(x$) for k = 0 to 350 step s 'for 350/s generations... NewX = r * OldX * (1 - OldX) 'update the value of x if OldX > 0 and NewX > 0 then 'If population not died out.. y = (NewX - OldX) / OldX 'update the value of x-dashed else NewX = 0 'population has all died out end if xNew = 150 * NewX 'new x-pixel co-ordinate yNew = 50 * y 'new y-pixel co-ordinate if k > 0 then pset((k - s) * xy, xOld + bias1), 7 'Draw time graph's line-( k * xy, xNew + bias1), 7 'line increment. pset(yOld * xy, xOld + bias2), 7 'Draw phase-graph's line-(yNew * xy, xNew + bias2), 7 'line increment. end if OldX = NewX 'set up the value of OldX ready for next pass xOld = xNew 'set up new x-pixel as next pass's old x-pixel yOld = yNew 'set up new y-pixel as next pass's old y-pixel next goto a 'go back to accept another value of r FrameSub: cls locate 11,31 : print"TIME SERIES DIAGRAM" locate 1,10 : print "x" locate 10,68 : print"t" LOCATE 23,12 : PRINT"PHASE-SPACE DIAGRAM" LOCATE 22,36 : print"dx" LOCATE 23,36 : print"dt" locate 13,10 : print"x" line(-40 * xy, bias1)-(+350 * xy, bias1) line(-40 * xy, bias2)-(+150 * xy, bias2) line(0, bias2)-(0, bias2 + 150) line(0, bias1)-(0, bias1 + 150) locate 15,38 : print "Exercise formula: x = rx(1 - x)" locate 17,40 : print "r = ";r$ locate 18,40 : print "x = ";x$ locate 4.1 return 'November 1997 Robert John Morton