ChrisBatho/Mays Population Equation

From J Wiki
Jump to navigation Jump to search

Describe ChrisBatho/TestC here.

Maycontrol.jpg

This is The Control Panel

May was the pioneer who first detected the onset of chaos in this population model. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

NB. May's Equation;- xn=rx(1-x)
	NB. By [[User:Chris Batho|Chris Batho]] and Oleg Kobchenko for J601  v1.01
	NB. http://www.jsoftware.com/jwiki/Scripts/mays equation	
NB.===========================================================	


The main function ie Mays equation. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

	may=: 3 : 0         NB. main function
	'Rval Rinc'=: y
	
	NB. nom val Rval:- 2.6 2.75 3.00 3.55 3.75 Rinc:-0.00015
	r=: Rval
	X=: 0.6
	[R=: r
	[NX=: X
	ctr=:0
	while. (ctr < 66000) *. (X > 0.01) do.
	r=: r + Rinc
	z=: (r*X)*(1-X)
	X=: z
	[R=: R, r
	[NX=: NX, X
	ctr=: ctr + 1
	j=. ctr%450
	pct=: (3.994-Rval)%Rinc
	j=. (ctr*100)%pct
	wd 'set progress ',":j
	end.
)
NB.===========================================================	
May1.jpg

This is a sample plot

The GUI Viewer. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

	require 'graph numeric trig plot strings'
	
	view=: 3 : 0           NB. viewer	
	'nRval nRinc'=: y
	may	nRval, nRinc
	pd 'axes 1 1'
	pd 'labels 1'
	pd 'viewsize 2'
	pd 'color darkblue'
	pd 'pensize 1'
	'type dot; title The Equation of May (R v X); framebackcolor white' plot R; NX
)
	
NB.===========================================================

Window Control. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

require 'printf plot strings'

MAY=: 0 : 0
pc May;pn "Mays equation";
menupop "File";
menu new "&New" "" "" "";
menu open "&Open" "" "" "";
menusep;
menu exit "&Exit" "" "" "";
menupopz;
xywh 153 12 41 11;cc editRstart edit;
xywh 154 37 41 11;cc editRinc edit;
xywh 162 2 27 10;cc static1 static;cn "R Start ";
xywh 165 26 23 10;cc static2 static;cn "R Inc.";
xywh 27 37 34 11;cc bnPlot button;cn "Plot";
xywh 21 20 50 11;cc progress progress;
xywh 24 8 46 10;cc static3 static;cn "Plot Progress";
xywh 73 49 75 30;cc stDesc static;
pas 6 6;pcenter;
rem form end;
)

Execution [{{#file: "Mays Equation"}} Download script: Mays Equation ]

May_run=: 3 : 0
wd MAY
NB. initialize form here
wd 'set editRstart 3.55'
wd 'set editRinc 0.000035'
j=: 0
wd 'set progress ',":j
wd 'set stDesc *',Desc rplc LF;''
wd 'pshow;'
)

Go control. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

May_bnPlot_button=: 3 : 0
fire''
'Plot completed 'printf here=: ''
)

May_close=: 3 : 0
wd'pclose'
)

Go [{{#file: "Mays Equation"}} Download script: Mays Equation ]

fire=: 3 : 0
m=: 1>.{.0".editRstart
n=: ".editRinc
view m, n
)

A warning to the user should you select very small values. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

Desc =: 0 : 0
Take care. A small value
 of Rinc
 causes a long
  Plot time.
)

Run. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

May_run''

An Example of a simple diagnostic test if required for debugging. [{{#file: "Mays Equation"}} Download script: Mays Equation ]

NB.view 3.55 0.00015

Progress button (no additional control here.) [{{#file: "Mays Equation"}} Download script: Mays Equation ]

May_progress_button=: 3 : 0
)