{VERSION 5 0 "SGI MIPS UNIX" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 }} {SECT 0 {SECT 1 {PARA 3 "" 0 "" {TEXT -1 6 "Bifurc" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 985 "bifurc:=proc(g::procedure, # map of the for m (a,x) -> f(a,x)\n r::numeric..numeric, # range of a\n \+ n::posint, # no. of a points for parameter \"a\"\n \+ x0::numeric, # initial point\n skip::posint, # transcie nt points\n keep::posint) # cycle points\n\nlocal steps,a, ainc,L,R,D,P,i,j,p;\n\nsteps := proc(g,a,n,x0,skip,keep,X) local i, x; \nx := x0;\nfor i to skip do x := g(a,x); if abs(x)>10 then RETURN(0.0 ); fi; od;\nfor i to keep do\n x := g(a,x);\n if abs(x)>10 then \+ RETURN(0.0) fi; # Divergence\n X[i] := x;\nod;\nRETURN(1.0);\nend: \n\nL := evalf(lhs(r));\nR := evalf(rhs(r));\nP := array(0..n);\nD := \+ array(1..keep);\na := L;\nainc := (R-L)/n;\nfor i from 0 to n do\n \+ if evalhf( steps(g,a,n,x0,skip,keep,var(D)) ) = 1.0 then\n P[i ] := evalf( \{seq(D[j], j=1..keep)\}, 8 );\n P[i] := POINTS(se q([a,p], p=P[i]));\n else P[i] := NULL;\n fi;\n a := a+ainc; \nod:\nPLOT( seq(P[i],i=0..n), SYMBOL(POINT), COLOUR(RGB,1,0,0) );\nen d:\n" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "f := proc(a,x) a*x *(1-x) end:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "bifurc(f,2.5 ..4,100,0.5,1000,100);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }