MyWorld3 Equations and Explanations
MyWorld3 Equations and Explanations
Julien LEGAVRE
August 2022
Table Of Contents
Introduction 2
1 History of World3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 This Study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3 Vade Mecum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Equations of World3 3
4 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5 Initial conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
6 Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
7 Population . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7.1 Population dynamics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7.2 Death . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.3 Birth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
8 Capital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.1 Industrial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
8.2 Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
8.3 Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
9 Agriculture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.1 Loop 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
9.2 Loop 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.3 Loop 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9.4 Loop 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
9.5 Loop 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
10 Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
11 Pollution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12 Indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.1 Distribution of outputs between the different sector . . . . . . . . . . . . . 30
12.2 Industrial outputs indexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
12.3 Human Welfare Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
12.4 Human Ecological Footprint . . . . . . . . . . . . . . . . . . . . . . . . . . 33
13 Explanations on function Delay3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
14 Different scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Implementation 38
15 World3 dynamic.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
16 World3 system.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
17 World3 plot.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
18 World3 run.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1
Introduction
1 History of World3
In 1968, a group of persons among heads of state and government, United Nation administrators,
high-level politicians, scientists, economists, and business leaders from around the globe is formed,
alarmed by the tendency mankind was taking. The international group created became known as
”The Club Of Rome” after its first meeting took place in this location.
At the same time, Professor J.W.Forrester, a scientist expert in dynamic systems, is finishing
its model on an industrial application of dynamic system using computer simulations. A few
months after, he proposes to design a model based on dynamic system to the Club Of Rome.
This model called World2 could represent the world, in order to observe the world-wide problem
which worries the organisation [1] . Its approach seemed interesting to their eyes and so after having
discussed about some components of the model which were approximately described and based
on some strong assumptions, the new model World3 is created [2] . Produced in cooperation with
D.L. Meadows, it will be used in the ”The Limits To Growth” to have a good based to explain
the dynamic of different parameters. The Club Of Rome received criticisms from all around the
world, because of their conclusions on the future of mankind which were alarming. After the
model was upgraded and more data were collected, an update version of their book was published
30 years after the first one [3] .
2 This Study
This study aims at coding in Python the World3 model of 1972 and 2003 with its different scenario
to observe its behavior. The objective is to do it in a way that everyone with basic knowledge
in Python could modify it. [4] This paper explains how this World3 model is implemented. It is
based on previous explanations and implementations which have been carried out [5] [6] [7] [8] . The
code is available here1 . It is under two licences: GNU-GPL version 2.0 and CeCILL which is an
adaptation of the GNU-GPL to the French laws. More information are available here2 .
Either one can be used.
A graph representing World3 model in detail and another one showing its distribution by units
(non-renewable resources, agriculture, pollution, population, capital) are given in last pages.
3 Vade Mecum
Before reading this study, it is recommended to have read the following works:
• D. H. Meadows, J. Randers, and D. L. Meadows, The limits to growth: the 30-year update [3]
• F. E. Cellier and S. Fabricius, “SystemDynamics - World3” [7]
1
https://github.com/Juji29/MyWorld3
2
https://cecill.info/index.fr.html
2
Equations of World3
4 Introduction
There is no real calibration of equations in order to make sure that values match with historical
values. But the values have been inspected regarding historical tendency from 1900 to 1970. The
choice of input have been made in order to obtain coherent curves with the model and historic
data. The values given are valid for the scenario 1. To obtain the other scenario, you will have
to change only the variables named in the section ”Different scenario”. In the code, it is already
made so you have just to choose the scenario number named N SCENARIO.
In addition, some equations are boxed. It corresponds to equations which make the link between
the different parts detailed in the graph which is at the end of this document.
Finally, each acronym is explained in the section Acronyms and Appendix.
5 Initial conditions
6 Units
3
7 Population
Constants
Equations
dP1
= B − D1 − M AT1 (2)
dt
D1 = P1 × M1 (3)
LE
OY
20 30 40 50 60 70 80
(4)
M1 5.67×10−2 3.66×10−2 2.43×10−2 1.55×10−2 8.2×10−3 2.3×10−3 1×10−3
P1 × (1 − M1 )
M AT1 = (5)
15
4
Population aged from 15 to 44 years (P2 ) :
dP2
= M AT1 − D2 − M AT2 (6)
dt
D2 = P2 × M2 (7)
LE
OY
20 30 40 50 60 70 80
(8)
M2 2.66×10−2 1.71×10−2 1.1×10−2 6.5×10−3 4×10−3 1.6×10−3 8×10−4
P2 × (1 − M2 )
M AT2 = (9)
30
dP3
= M AT2 − D3 − M AT3 (10)
dt
D3 = P3 × M3 (11)
LE
OY
20 30 40 50 60 70 80
P3 × (1 − M3 )
M AT3 = (13)
20
5
Population older than age 65 (P4 ) :
dP4
= M AT3 − D4 (14)
dt
D4 = P4 × M4 (15)
LE
OY
20 30 40 50 60 70 80
(16)
M4 0.13 0.011 0.09 0.07 0.06 0.05 0.04
7.2 Death
Constants
Equations
LE = LEN × LM F × LM HS × LM P × LM C (19)
6
Lifetime Multiplier from Food (LMF) :
FPC
SF P C
0 1 2 3 4 5
SOP C
GDP U
0 250 500 750 1 000 1 250 1 500 1 750 2 000
(21)
HSAP C 0 20 50 95 140 175 200 220 230
EHSP C
GDP U
0 20 40 60 80 100
P OP
UP
0 2×109 4×109 6×109 8×109 1×1010 1.2×1010 1.4×1010 1.6×1010
(25)
FPU 0 0.2 0.4 0.5 0.58 0.65 0.72 0.78 0.8
7
Crowding Multiplier from Industry (CMI) :
IOP C
GDP U
0 200 400 600 800 1 000 1 200 1 400 1 600
(26)
CM I 0.5 0.05 -0.1 -0.08 -0.02 0.05 0.1 0.15 0.2
LM C = 1 − CM I × F P U (27)
P P OLX 0 10 20 30 40 50 60 70 80 90 100
(28)
LM P 1 0.99 0.97 0.95 0.9 0.85 0.75 0.65 0.55 0.4 0.2
7.3 Birth
Constants
8
Equations
MT F = MT F N × F M (32)
LE
OY
0 10 20 30 40 50 60 70 80
DT F = DCF S × CM P LE (34)
P LE
OY
0 10 20 30 40 50 60 70 80
(35)
CM P LE 3 2.1 1.6 1.4 1.3 1.2 1.1 1.05 1
9
Perceived Life Expectancy (PLE) :
P LE = Delay3(LE, LP D) (36)
DIOP C
GDP U
0 200 400 600 800
IOP C − AIOP C
F IE = (41)
AIOP C
10
Need for Fertility Control (NFC) :
MT F
NF C = −1 (43)
DT F
1 , if T IM E ⩾ F CEST
F CE = F CF P C (44)
GDP U
0 0.5 1 1.5 2 2.5 3
, else
F CE 0.75 0.85 0.9 0.95 0.98 0.99 1
NF C 0 2 4 6 8 10
(47)
F SAF C 0 0.005 0.015 0.025 0.03 0.035
8 Capital
8.1 Industrial
Constants
11
Name Type Value Dimension
ICOR1 constant 3 Year
ICOR21972 constant 3 Year
ICI initial value 2.1×1011 $
ALIC1 constant 14 Year
ALIC2 constant 14 Year
IET constant 4000 Year
F IOAC1 constant 0.43 Dmnl
F IOAC2 constant 0.43 Dmnl
IOP CD constant 400 $/(Person·Year)
P Y EAR1972 constant 1975 Year
P Y EAR2003 constant 4000 Year
Equations
IO
IOP C = (48)
P OP
IC
ICDR = (52)
ALIC
12
Average Lifetime of Industrial Capital (ALIC) :
ALIC2 , if T IM E ⩾ P Y EAR
ALIC = (53)
ALIC1 ,
else
ICOR2003
2 :
ICOR22003 = ICOR2T × COY M × COP M (59)
13
8.2 Services
Constants
Equations
IOP C
GDP U
0 200 400 600 800 1 000 1 200 1 400 1 600
ISOP C1 40 300 640 1 000 1 220 1 450 1 650 1 800 2 000 (61)
SOP C
ISOP C
0 0.5 1 1.5 2
14
Service Capital Investment Rate (SCIR) :
SC
SCDR = (66)
ALSC
SO
SOP C = (69)
P OP
8.3 Jobs
Constants
15
Name Type Value Dimension
LF P F constant 0.75 Dmnl
LU F DT constant 2 Year
LU F DI initial value 1 Dmnl
Equations
Job (J) :
J = P JIS + P JAS + P JSS (71)
IOP C
GDP U
50 200 350 500 650 800
(73)
−4 −4 −4 −5 −5 −5
JP ICU 3.7×10 1.8×10 1.2×10 9×10 7×10 6×10
SOP C
GDP U
50 200 350 500 650 800
(75)
JP SCU 1.1×10−3 6×10−4 3.5×10−4 2×10−4 1.5×10−4 1.5×10−4
P JAS = JP H × AL (76)
16
Jobs Per Hectare (JPH) :
AIP H
U AGI
2 6 10 14 18 22 26 30
(77)
JP H 2 0.5 0.4 0.3 0.27 0.24 0.2 0.2
dLU F D LF − LU F D
= (80)
dt LU F DT
LU F D 1 3 5 7 9 11
(81)
CU F 1 0.9 0.7 0.3 0.1 0.1
9 Agriculture
9.1 Loop 1
Constants
17
Equations
Food (F) :
F = LY × AL × LF H × (1 − P L) (85)
IOP C
GDP U
0 200 400 600 800 1 000 1 200 1 400 1 600
IF P C1 230 480 690 850 970 1 070 1 150 1 210 1 250 (88)
IO
T AI = (89)
F IOAA
18
FPC
IF P C
0 0.5 1 1.5 2 2.5
T AI × F IALD
LDR = (92)
DCP H
P AL
P ALT
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
(93)
DCP H 100 000 7 400 5 200 3 500 2 400 1 500 750 300 150 75 50
9.2 Loop 2
Constants
Equations
19
Agricultural Inputs (AI) :
dAI CAI − AI
= (95)
dt ALAI
AI × (1 − F ALM )
AIP H = (97)
AL
AIP H
U AGI
0 40 80 120 160 200 240 280 320 360 400 440 480
LY M C 1972 1 3 3.8 4.4 4.9 5.4 5.7 6 6.3 6.6 6.9 7.2 7.4
LY M C 2003 1 3 4.5 5 5.3 5.6 5.9 6.1 6.35 6.6 6.9 7.2 7.4
AIP H
U AGI
520 560 600 640 680 720 760 800 840 880 920 960 1 000
LY M C 1972 7.6 7.8 8 8.2 8.4 8.6 8.8 9 9.2 9.4 9.6 9.8 10
LY M C 2003 7.6 7.8 8 8.2 8.4 8.6 8.8 9 9.2 9.4 9.6 9.8 10
(98)
Land Yield (LY) :
LY = LY F × LF ERT × LY M C × LY M AP (99)
20
Land Yield Multiplier from Air Pollution (LYMAP) :
LY M AP2 , if T IM E ⩾ P Y EAR
LY M AP = (101)
LY M AP ,
else
1
IO
IO70
0 10 20 30
M P LD
M P AI
0 0.25 0.5 0.75 1 1.25 1.5 1.75 2
(103)
F IALD 0 0.05 0.15 0.3 0.5 0.7 0.85 0.95 1
LY
M P LD = (104)
DCP H × SD
ALAI × LY × M LY M C
M P AI = (105)
LY M C
AIP H
U AGI
0 40 80 120 160 200 240 280
21
Name Type Value Dimension
T DD constant 20 Year
LYF2003
2 :
LY F22003 = Delay3(LY T D, T DD) (107)
9.3 Loop 3
Constants
Equations
LY
ILF
0 1 2 3 4 5 6 7 8 9
LLM Y1 1.2 1 0.63 0.36 0.16 0.055 0.04 0.025 0.015 0.01
(110)
LLM Y21972 1.2 1 0.63 0.36 0.16 0.055 0.04 0.025 0.015 0.01
LLM Y22003 1.2 1 0.63 0.36 0.29 0.26 0.24 0.22 0.21 0.2
22
Land Erosion Rate (LER) :
AL
LER = (111)
ALL
IOP C
GDP U
0 200 400 600 800 1 000 1 200 1 400 1 600
(112)
U ILP C 0.005 0.008 0.015 0.025 0.04 0.055 0.07 0.08 0.09
9.4 Loop 4
Constants
Equations
23
Land Fertility Degradation Rate (LFDR) :
P P OLX 0 10 20 30
(117)
LF DR 0 0.1 0.3 0.5
LF D = LF ERT × LF DR (118)
9.5 Loop 5
Constants
Equations
ILF − LF ERT
LF R = (119)
LF RT
24
Fraction of inputs Allocated to Land Maintenance (FALM) :
PFR 0 1 2 3 4
(121)
F ALM 0 0.04 0.07 0.09 0.1
dLY T D
= LY T DR (124)
dt
DF R − F R 0 1
(126)
LY CM 0 0
25
10 Resources
Constants
Equations
N RU R = P OP × P CRU M × N RU F (129)
IOP C
GDP U
0 200 400 600 800 1 000 1 200 1 400 1 600
(131)
P CRU M 0 0.85 2.6 3.4 3.8 4.1 4.4 4.7 5
NR
N RF R = (132)
N RI
26
Fertility Control Allocated to Obtaining Resources (FCAOR) :
F CAOR2 , if T IM E ⩾ F CAORT M
F CAOR = (133)
F CAOR1 ,
else
F CAOR1 1 0.9 0.7 0.5 0.2 0.1 0.05 0.05 0.05 0.05 0.05
(134)
F CAOR21972 1 0.9 0.7 0.5 0.2 0.1 0.05 0.05 0.05 0.05 0.05
F CAOR22003 1 0.2 0.1 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
NRUF2003
2 :
N RU F22003 = Delay3(N RT D, T DD) (135)
dN RT D
= N RAT E (136)
dt
N RU R
1− DN RU R
-1 0
(138)
N RCM 0 0
27
Industrial Capital-Output Ratio Technology Transmission (ICOR2T) :
11 Pollution
Constants
Equations
28
Persistent Pollution Generated by Industrial Output (PPGIO) :
dP P OL
= P P AP R − P P ASR (145)
dt
P P OL
P P OLX = (146)
P P OL70
P P OL
P P ASR = (147)
1.4 × AHL
29
In addition for the version 2003:
PPGF22003 :
P P GF22003 = Delay3(P T D, T DD) (150)
dP T D
= P T DR (151)
dt
P P OLX
1− DP OLX
-1 0
(153)
P OLGF M 0 0
12 Indexes
Constants
30
Name Type Value Dimension
P OF constant 0.22 $/Veg eq kg
Equations
P OF × F
F OA = (155)
P OF × F + SO + IO
IO
F OI = (156)
P OF × F + SO + IO
S
F OS = (157)
P OF × F + SO + IO
Equations
N RU R
RESIN T = (158)
IO
P P GIO × P P GF
P LIN ID = (159)
IO
31
Consumed Industrial Output Per Capita (CIOPC) :
CIO
CIOP C = (161)
P OP
Constants
Equations
LEI + EI + GDP I
HW I = (162)
3
LE
OY
25 35 45 55 65 75 85
(163)
LEI 0 0.16 0.33 0.5 0.67 0.84 1
GDP P C
GDP U
0 1 000 2 000 3 000 4 000 5 000 6 000 7 000
(164)
EI 0 0.81 0.88 0.92 0.95 0.98 0.99 1
log10 ( GDP PC
RLGDP
)
GDP I = RHGDP
(165)
log10 ( RLGDP )
32
Gross Domestic Product Per Capita (GDPPC) :
IOP C
GDP U
0 200 400 600 800 1 000
(166)
GDP P C 120 600 1 200 1 800 2 500 3 200
Constants
Equations
P P GR × HU P
ALGHA = (168)
GHAH
AL
ALGGHA = (169)
GHAH
U IL
U LGHA = (170)
GHAH
33
13 Explanations on function Delay3
Delay3 :
Y = Delay3(V AL, DT )
⇔
DT
DL =
3
RT 1 = I1t−1 /DL
RT 2 = I2t−1 /DL
34
14 Different scenario
In ”Limits to Growth: The 30-Year Update”, different scenario are given starting from the stan-
dard run described above. Here are the changes to make in order to obtain the different scenario:
N RI = 2×1012
F CAORT M = 2002
F CAOR22003 1 0.1 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
P Y EAR = 2002
P P OLX
1− DP OLX
-1 0
P OLGF M -0.04 0
DF R − F R 0 1
LY CM 0 0.04
LLM Y T M = 2002
N RU R
1− DN RU R
-1 0
N RCM -0.04 0
35
• Scenario 7: This scenario starts with the same assumptions as Scenario 2.
F CEST = 2002
ZP GT = 2002
IOP CD = 350
ALAI2 = 2.5
ALIC2 = 18
ALSC2 = 25
IET = 2002
P Y EAR = 2002
LLM Y T M = 2002
P P OLX
1− DP OLX
-1 0
P OLGF M -0.04 0
DF R − F R 0 1
LY CM 0 0.04
N RU R
1− DN RU R
-1 0
N RCM -0.04 0
• Scenario 10: This scenario starts with the same assumptions as Scenario 9.
F CAORT M = 1982
36
F CEST = 1982
IET = 1982
LLM Y T M = 1982
P Y EAR = 1982
ZP GT = 1982
• Scenario 11: This scenario starts with the same assumptions as Scenario 10.
F CAORT M = 2012
F CEST = 2012
IET = 2012
LLM Y T M = 2012
P Y EAR = 2012
ZP GT = 2012
37
Implementation
In this part, it will be explain how the code given in introduction works and how you can modify
it in order to experiment other scenario.
The code is composed of 4 files:
• world3 dynamic.py which concerns the resolution of the graph
• world3 system.py which concerns the creation of the graph
• world3 plot.py which concerns posting of the results
• world3 run.py which concerns the execution of the code
15 World3 dynamic.py
First, a general class Node is created in order to have a base for all nodes. Each node will have for
attributes: a name, a value, an associated function, predecessors, successors, a rank and a graph
to which it is linked.
Then, four types of node are defined: NodeStock, NodeFlow, NodeDelay3 and NodeConstant.
• A NodeStock is a node which is initialized with a value and at each step of time, its variation
is calculated. So it will be integrated after all the other nodes have been computed.
• A NodeFlow is a node which is calculated with the value of of NodeStock, NodeConstant
or other NodeFlows. Its value is calculated and not its variation.
• A NodeDelay3 is a node which has the same characteristics as a NodeFlow except the fact
that it takes into account the value it had at the step n-1 and n-2. So the value of the step
n is smoothed with its previous value. In order to do that, it has for attributes the constant
which is the delta of time, the node used to obtain the value of the current step and finally
I1, I2 and I3 to compute the smoothed value. The way they are computed is given in the
section 13.
• A NodeConstant is a node which is constant during all the execution of the program. There
are two types of NodeConstant: constant and tables. Constants have a single value where
tables are used to define piece-wise linear (PWL) functions. They are used instead of
equation for some nodes. Their implementation is made with a list of couple (x, y) and a
table tab where x is the input and y the output. The detail of their implementation is given
in section World3 system.py.
The class Hypergraph represents the entire graph which is composed of different nodes de-
scribed above. It takes as parameters the version of World3 desired and eventually nodes already
created. Its attributes are a dictionary of its nodes(nodes), its version(version), the number
maximum of rank(nbrank), a list of nodes ordered by their rank(nodesrank) and a list of its
NodeStocks(stocks). Several methods are implemented so each of them are explained below:
38
• add node(self, node): add node to the graph.
• add nodes(self, nodes): add all nodes given in the list nodes to the graph.
• add edge(self, f, x target, x s): create an edge between x target and x s described by the
function f.
• eval(self, ts): compute the value of all nodes in the nodesrank.
• run(self, it, ft, ts): start the execution of the code by computing values for all time steps.
• sub graph vertex(self, cond): return the list of name of nodes respecting the condition cond
as well as a list of the rank of their predecessors and another with the rank of their successors
• set rank(self): sort a list of nodes by their rank(nodesrank) and compute nbrank
16 World3 system.py
The graph given in the chapter Equations of World3 is implemented here using classes of World3 dynamic.py.
If you want to create a new scenario, I suggest you to give a number to this scenario and to modify
World3 system.py as it is done for the existing ones. In World3, many functions are PWL so the
following function is used:
Algorithm 1: Function ftab
Data: x ∈ Z;
x represents node in input and tab is a given table;
Result: y = ftab (x) = f (x, tab)
if tab[0][0] ≥ x then
return tab[0][1]
else if tab[−1][0] ≤ x then
return tab[−1][1]
else
i ← 0;
while i < length(tab) do
if tab[i][0] ≥ x ≥ tab[i + 1][0] then
tab[i+1][1]−tab[i][1]
coef ← tab[i+1][0]−tab[i][0]
;
return tab[i][1] + coef × (x − tab[i][0])
else
i ← i + 1;
end
end
end
39
In practice, ftab can be seen like a function which takes a constant table and a x, search where
is x in this table and return the linear interpolation of the corresponding outputs. If x is out of
range, the bound of the table will be returned.
17 World3 plot.py
All nodes have also an historic which can be showed at the end of the execution of the program.
World3 plot.py contains functions which allow to observe evolution of variables in the way it is
done in ”The Limits to Growth”. All backgrounds are taken from this book and from ”The Limits
to Growth: The 30-Year Update”. They are available from scenario 1 to 10.
It is also possible to plot several other variables on the same graph with the multiple plot function
or each one on a separate graph with single plot.
18 World3 run.py
This file is the one to execute. You can choose the version of World3, the initial time, the final
one, time step and the scenario you desire to execute. Each run is, by default, printed with the
result obtained in ”The Limits to Growth” in background, an activated grid and without saving.
But each of these parameters can be easily modified.
40
Acknowledgements and Bibliography
Acknowledgements
I would like to thank Alexandre Gondran for his supervision all along this project and for the time
to he gave to answer and to debate on issues I had. I would also acknowledge Estelle Malavolti
who have allowed me to have a better comprehension of the different economic models. Finally,
I would thank François Huchet for proofreading my code and for his advice to make it better.
Bibliography
[1] J. W. Forrester, World dynamics. Wright-Allen Press Cambridge, 1971.
[2] D. H. Meadows and Club of Rome, eds., The Limits to growth: a report for the Club of Rome’s
project on the predicament of mankind. New York: Universe Books, 1972.
[3] D. H. Meadows, J. Randers, and D. L. Meadows, The limits to growth: the 30-year update.
White River Junction, Vt: Chelsea Green Publishing Company, 2004.
[8] C. Vanwynsberghe, “PyWorld3 - The World3 model revisited in Python,” Nov. 2021. https:
//hal.archives-ouvertes.fr/hal-03414394.
41
Acronyms and Appendix
AI Agricultural Inputs
AL Arable Land
42
CMPLE Compensatory Multiplier from Perceived Life Expectancy
EI Education Index
F Food
43
FIOAA Fraction of Industrial Output Allocated to Agriculture
FM Fertility Multiplier
FR Food Ratio
FT Final Time
IC Industrial Capital
44
ICI Initial Industrial Capital
IO Industrial Output
IT Initial Time
J Job
LE Life Expectancy
LF Labor Force
45
LFERTI Initial Land Fertility
LY Land Yield
46
MAT3 Maturation rate of 64 years old people
NR Non-renewable Resources
OY One Year
47
PFR Perceived Food Ratio
PL Processing Loss
48
SC Service Capital
SD Social Discount
SO Service Output
TF Total Fertility
TL Total Land
TS Time Step
UP Unit of Person
49
Annex 1
Annex 2
A global representation of World33 is the following graph:
3
Extracted from ”Understanding Global Systems Today — A Calibration of the World3-03 Model between 1995
and 2012” [9]
50
Figure 1: DYNAMO diagram of the 1972 World3 model