📄 twpopuweb.nlogo
字号:
globals [b b0 b1 b2 b3 b4 ;; System dynamics model globals ;; stock values Total-popu birth-rate year death-rate ;; size of each step, see SYSTEM-DYNAMICS-GO dt ;; total steps system-dynamics-t];; Initializes the system dynamics model.;; Call this in your model's SETUP procedure.to system-dynamics-setup set dt 1.0 set system-dynamics-t 0 ;; initialize stock values set Total-popu 2055 set birth-rate 0.0157 set year 80 set death-rate 0.0052end;; Step through the system dynamics model by performing next iteration of Euler's method.;; Call this in your model's GO procedure.to system-dynamics-go set system-dynamics-t system-dynamics-t + dt ;; compute variable and flow values once per step let local-popu-birth popu-birth let local-birth-rate-change birth-rate-change let local-popu-death popu-death let local-year-ahead year-ahead let local-death-rate-change death-rate-change ;; update stock values ;; use temporary variables so order of computation doesn't affect result. let new-Total-popu max( list 0 ( Total-popu + local-popu-birth - local-popu-death ) ) let new-birth-rate max( list 0 ( birth-rate - local-birth-rate-change ) ) let new-year max( list 0 ( year + local-year-ahead ) ) let new-death-rate max( list 0 ( death-rate + local-death-rate-change ) ) set Total-popu new-Total-popu set birth-rate new-birth-rate set year new-year set death-rate new-death-rateend;; Report value of flowto-report popu-birth report Total-popu * birth-rate * dtend;; Report value of flowto-report birth-rate-change report yearly-birth-rate * dtend;; Report value of flowto-report popu-death report Total-popu * death-rate * dtend;; Report value of flowto-report year-ahead report 1 * dtend;; Report value of flowto-report death-rate-change report yearly-death-rate * dtend;; Plot the current state of the system dynamics model's stocks;; Call this procedure in your model's GO procedure.to system-dynamics-do-plot set-current-plot "populations" set-current-plot-pen "Total-popu" plotxy system-dynamics-t Total-popu ; set-current-plot-pen "birth-rate" ;plotxy system-dynamics-t birth-rate ;set-current-plot-pen "year" ;plotxy system-dynamics-t year ;set-current-plot-pen "death-rate" ;plotxy system-dynamics-t death-rateend;;------------------to setup casystem-dynamics-setupendto gorepeat 5 [ system-dynamics-go system-dynamics-do-plot ]endto-report yearly-birth-rate ifelse year >= 80 and year <= 84 [report 0.0001][ifelse year >= 85 and year <= 89 [report 0.0007] [ifelse year >= 90 and year <= 91 [report 0.00085] [ifelse year >= 92 and year <= 92 [report 0.0] ;[report 0.0] [ifelse year >= 93 and year <= 99 [report 0.000257] ;[report 0.000257] [ifelse year >= 100 and year <= 109 [report 0.00023] ;[report 0.00023] [ifelse year >= 110 and year <= 119 [report 0.00012] ;[report 0.00012] [ifelse year >= 120 and year <= 139 [report 0.000075] [report (-1 * yearly-increased-birth-rate-after-140)] ;[report 0.000075] [report 0.0] ; [ifelse year >= 92 and year <= 92 [report b0] ;[report 0.0] ; [ifelse year >= 93 and year <= 99 [report b1] ;[report 0.000257] ; [ifelse year >= 100 and year <= 109 [report b2] ;[report 0.00023] ; [ifelse year >= 110 and year <= 119 [report b3] ;[report 0.00012] ; [ifelse year >= 120 and year <= 139 [report b4] [report 0.0] ;[report 0.000075] [report 0.0] ] ] ] ] ] ]]endto-report yearly-death-rate ifelse year >= 80 and year <= 84 [report 0.0001][ifelse year >= 85 and year <= 89 [report 0.0] [ifelse year >= 90 and year <= 91 [report 0.00005] [ifelse year >= 92 and year <= 92 [report 0.0] [ifelse year >= 93 and year <= 99 [report 0.0001143] [ifelse year >= 100 and year <= 109 [report 0.00008] [ifelse year >= 110 and year <= 119 [report 0.00026] [ifelse year >= 120 and year <= 139 [report 0.000405] [report yearly-increased-death-rate-after-140] ] ] ] ] ] ]]end@#$#@#$#@GRAPHICS-WINDOW9001010021331130.7111110111CC-WINDOW53561011451Command Center0BUTTON12207553NILsetupNIL1TOBSERVERTNILBUTTON802014353NILgoNIL1TOBSERVERTNILPLOT21219709267populationsNILNIL0.010.00.010.0truetruePENS"Total-popu" 1.0 0 -2674135 trueMONITOR13113143162NILTotal-popu01MONITOR1359143108NILyear01SLIDER17309377342yearly-increased-birth-rate-after-140yearly-increased-birth-rate-after-140-2.0E-42.0E-47.0E-51.0E-51NILSLIDER375308713341yearly-increased-death-rate-after-140yearly-increased-death-rate-after-140-6.0E-46.0E-43.0E-41.0E-61NILMONITOR14164143213NILbirth-rate101MONITOR15215143264NILdeath-rate101TEXTBOX91284309310チ瓣140
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -