Andrew Ford 헌정 강의: Ford, Andrew. (2010) Modeling the Environment, Second Edition. Washington DC:Island Press.
시스템사고 추천 자료는?
Andrew Ford 헌정 강의: Ford, Andrew. (2010) Modeling the Environment, Second Edition. Washington DC:Island Press.
매주 정기적인 강좌를 비 정기 강좌로 전환합니다. 사전 공지를 받고 싶은 분은 연락 주십시오. benjamin@system-leadership.org
목차
※ 홈페이지 주소: https://bit.ly/Andy-ME
※ Zoom: https://bit.ly/Zoom-Andy-ME
※ 줌 주소 회의 ID: 845 4397 9930 (1004)
※ Youtube Playlist: https://bit.ly/4jXhpX8
Frederick Andrew 'Andy' Ford
December 4, 1944 - December 29, 2024
Andy died as a result of dementia at the age of 80. Though born in Lone Pine, California, he was raised in the small potash mining town of Trona, California, in the Mojave Desert.
He was valedictorian of his graduating high school class and went on to college, first to the University of California at Davis where he graduated with a Bachelor of Science in electrical engineering with top honors, and later with a Master of Science in applied science. He went on to Harvard where he earned a Master of Science in applied mathematics and to Dartmouth College where he got his Doctor of Engineering. At Dartmouth, he learned system dynamics, a computer modeling discipline developed at MIT by Jay W. Forrester. He practiced this discipline for the rest of his career using his expertise to model a variety of systems in electric utilities, the environment and decision making. He was recognized in 1996 with the Jay Wright Forrester Award for an outstanding contribution to the field of system dynamics.
He was employed by Los Alamos National Laboratory for 10 years and then went on as a professor, first at the University of Southern California and then at Washington State University. He consulted for many companies and governments around the world, but his great love was teaching. He wrote a textbook, "Modeling the Environment," still in use today. He was a wonderful mentor to his graduate students and stayed in touch with them long after his retirement.
His joy was his family. He met his wife, Amy Stone, in high school. They later married and had two daughters, Amanda McQuade and Emilee Powell, who both live in Grand Junction, Colorado. He was so proud of their accomplishments and characters and very much liked and admired his sons-in-law. Amanda is married to Kyle McQuade and has three children: Lincoln, Madeline and Cameron. Emilee is married to Steven Powell and has two children: Phoenix and Archer. Andy adored his grandchildren and would play with them endlessly. He had a wonderful career and life with few regrets. He was valued as a colleague and friend, and adored as a husband, father, uncle and grandfather. He would say he could not ask for more.
In honor of Andy's achievements, donations may be made to the Andrew Ford Memorial Travel Award at Washington State University at cas.wsu.edu/andrew-ford
Source: https://www.lmtribune.com/obituaries/frederick-andrew-andy-ford-18481703
※ 정 박사의 블로그 글:
https://bit.ly/Andy-Tribute-01 (English version: https://bit.ly/4hS220k )
https://bit.ly/Andy-Tribute-02 (English version: https://bit.ly/3QhDmTn )
※ 녹화 영상: https://youtu.be/AxeJBXz8CkU
2판 목차의 특징
Part I. Introductory Modeling
Chapter 1. Introduction
Chapter 2. Software: Getting Started with Stella and Vensim
Chapter 3. Stocks and Flows: The Building Blocks of System Dynamics Models
Chapter 4. Accumulating the Flows
Chapter 5. Water Flows in the Mono Basin
Chapter 6. Equilibrium Diagrams
Chapter 7. S-Shaped Growth
Chapter 8. Epidemic Dynamics
Chapter 9. Information Feedback and Causal Loop Diagrams
Chapter 10. Homeostasis
Chapter 11. Temperature Control on Daisyworld
Chapter 12. Hitting the Bull's-Eye
Part II. Intermediate Modeling
Chapter 13. The Modeling Process
Chapter 14. Software: Further Progress with Stella and Vensim
Chapter 15. The Salmon of the Pacific Northwest
Chapter 16. Managing a Feebate Program for Cleaner Vehicles
Chapter 17. Modeling Pitfalls
Chapter 18. Introduction to Cyclical Behavior
Chapter 19. Cycles in Real Estate Construction
Chapter 20. Cycles in Predator and Prey Populations
Chapter 21. The Overshoot of the Kaibab Deer Population
Chapter 22. DDT in the Ocean
Chapter 23. CO₂ in the Atmosphere
Chapter 24. Concluding Perspective
Appendixes: Review and Advanced Methods
Appendix A. Review of Units
Appendix B. Review of Exponential Growth
Appendix C. Software Choices and Individual-Based Models
Appendix D. Sensitivity Analysis and Uncertainty
Appendix E. Incorporating Other Methods in a System Dynamics Model
Appendix F. Short-Run and Long-Run Dynamics in a Single Model
Appendix G. Spatial Dynamics and Spatial Displays
References
1판 목차
Part I. Introduction
▪ Chapter 1. Overview
▪ Chapter 2. Stocks and Flows
▪ Chapter 3. Numerical Simulation
▪ Chapter 4. Water Flows in the Mono Basin
▪ Chapter 5. Equilibrium Diagrams
▪ Chapter 6. S-Shaped Growth
▪ Chapter 7. Causal Loop Diagrams
▪ Chapter 8. Causal Loops and Homeostasis
▪ Chapter 9. Bull's-Eye Diagrams
Part II. Simulating Material Flows
▪ Chapter 10. Introduction to Material Flow
▪ Chapter 11. The Numerical Step Size
▪ Chapter 12. Simulating the Flow of DDT
▪ Chapter 13. The Salmon Smolts' Spring Migration
▪ Chapter 14. The Tucannon Salmon
Part III. The Modeling Process
▪ Chapter 15. The Steps of Modeling
▪ Chapter 16. The Kaibab Deer Herd
Part IV. Simulating Cyclical Systems
▪ Chapter 17. Introduction to Oscillations
▪ Chapter 18. Predator-Prey Oscillations on the Kaibab Plateau
▪ Chapter 19. Volatility in Aluminum Production
Part V. Management Flight Simulators
▪ Chapter 20. Air Pollution, Cleaner Vehicles, and Feebates
▪ Chapter 21. Climate Control on Daisyworld
Part VI. Conclusions
▪ Chapter 22. Validation
▪ Chapter 23. Lessons from the Electric Power Industry
Review
▪ Appendix A. Units of Measurement
▪ Appendix B. Math Review
Software
▪ Appendix C. Stella
▪ Appendix D. Dynamo
▪ Appendix E. Vensim
▪ Appendix F. Powersim
▪ Appendix G. Spreadsheets
▪ Appendix H. Special Functions
Special Topics
▪ Appendix I. Spatial Dynamics
▪ Appendix J. Comprehensive Sensitivity Analysis
▪ Appendix K. The Idagon
Back Matter
▪ References
▪ Index
※ 녹화 영상: https://youtu.be/f_LYAzPVskQ
※ 정 박사의 블로그 글:
1장 첫 번째 글 Chapter 1 Introductionn(01) - Model, Mental Model
1장 두 번째 글 Chapter 1 Introduction(02) - Modeling for Prediction?
1장 세 번째 글 Chapter 1 Introduction(03) – Surprise Behavior & System Dynamics
1장 네 번째 글 Chapter 1 Introduction(04) – Learning for Understanding & Learning by Experimentation
1장의 주요 목차
Informal Models
Thinking about the Environment
Surprise Behavior in Systems
Learning by Experimentation
System Dynamics
Definition of System Dynamics
Six Shapes to Describe Dynamic Behavior
Modeling for Prediction
Modeling for Understanding
Modeling across Time Scales
Modeling Across Spatial Scales
Modeling across Disciplines
The Steps of Modeling
※ Typo
p.14 Richardson and Pugh (1985) => Richardson and Pugh (1981)
※ 녹화 영상: https://youtu.be/2oVdkL4i2Lk
※ 정 박사의 블로그 글:
2-1 모델 Equations
Run Specs
Start Time 0
Stop Time 40
DT 1/4
Time Units Years
총_인구(t) = 총_인구(t - dt) + (출생) * dt
INIT 총_인구 = 100
UNITS: 백만명
출생 = 7
UNITS: 백만명/Years
2-2 모델 Equations
Run Specs
Start Time 0
Stop Time 40
DT 1/4
Time Units Years
총_인구(t) = 총_인구(t - dt) + (출생) * dt
INIT 총_인구 = 100
UNITS: 백만명
출생 = birth_rate*총_인구
UNITS: 백만명/Years
birth_rate = 0.07
UNITS: 1/Years
2-3 모델 Equations
Run Specs
Start Time 0
Stop Time 40
DT 1/4
Time Units Years
총_인구(t) = 총_인구(t - dt) + (출생 - 사망) * dt
INIT 총_인구 = 100
UNITS: 백만명
사망 = 총_인구*death_rate
UNITS: 백만명/Years
출생 = birth_rate*총_인구
UNITS: 백만명/Years
birth_rate = 0.09
UNITS: 1/Years
death_rate = 0.02
UNITS: 1/Years
2-4 모델 Equations
Run Specs
Start Time 0
Stop Time 40
DT 1/4
Time Units Years
총_인구(t) = 총_인구(t - dt) + (출생 - 사망) * dt
INIT 총_인구 = 100
UNITS: 백만명
사망 = 총_인구/평균수명
UNITS: 백만명/Years
출생 = 가임_여성인구*가임_여성의_연간_출산율
UNITS: 백만명/Years
가임_여성_비율 = 0.36
UNITS: Dimensionless
가임_여성의_연간_출산율 = 0.5
UNITS: 1/Years
가임_여성인구 = 가임_여성_비율 * 여성_인구
UNITS: 백만명
여성_인구 = 총_인구 * 여성비율
UNITS: 백만명
여성비율 = 0.5
UNITS: Dimensionless
평균수명 = 50
UNITS: years
2-5 모델 Equations
(2-3모델 응용: Sensitivity Analysis)
Run Specs
Start Time 0
Stop Time 40
DT 1/4
Time Units Years
총_인구(t) = 총_인구(t - dt) + (출생 - 사망) * dt
INIT 총_인구 = 100
UNITS: 백만명
사망 = 총_인구*death_rate
UNITS: 백만명/Years
출생 = birth_rate*총_인구
UNITS: 백만명/Years
birth_rate = 0.09
UNITS: 1/Years
death_rate = 0.02
UNITS: 1/Years
2-6 모델 Equations
(비선형 모델)
Run Specs
Start Time 0
Stop Time 80
DT 1/4
Time Units Years
은행_잔고(t) = 은행_잔고(t - dt) + (발생하는_이자) * dt
INIT 은행_잔고 = 500
UNITS: 만원
발생하는_이자 = 은행_잔고*이자율
UNITS: 만원/Years
이자율 = GRAPH(은행_잔고)
Points: (0, 0.04), (1000, 0.04), (2000, 0.05), (3000, 0.05), (4000, 0.06), (5000, 0.06)
UNITS: 1/Years
※ 녹화 영상: https://youtu.be/ZW0ioGH_u4U
※ 왜 Stock과 Flow인가?
물리학에는 힘=질량×가속도(F=ma), 에너지=질량×광속²(E=mc²) 등 멋지고 강력한 법칙이 많습니다. 그런데도 시스템다이내믹스(SD)에서는 “Stock(저량)과 Flow(유량)”라는 관점이 강조되지요. 대체 무엇이 이 관점을 그렇게나 중요하게 만드는 걸까요?
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_93.html
※ Chapter 3: Joe의 질문 -“Water Released at Dam?” 긴 이름, 괜찮을까?
과거 수학 수업을 떠올리면, “x는 무엇을 나타내고, y 무엇을 나타낸다” 하는 식으로 한두 글자로 된 변수를 정의했었죠. 때론 그리스 문자(α,β등)도 자주 나왔고, “Let x stand for the water in the reservoir” 같은 문장을 봤습니다. 그런데 이번엔, “water released at dam”처럼 길고 문장 같은 변수를 쓰고 있으니, Joe 입장에선 “어? 이게 수학 맞나?” 하고 의아해지는 것이죠.
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_28.html
※ 인구 변화 공식, 왜 “e”가 등장할까? (경고: 문과는 정신 건강에 안 좋을 수 있습니다.)
https://benjaminkorea.blogspot.com/2025/02/andrew-ford-modeling-environment_28.html
※ Chapter 3: Joe의 질문 – “연료탱크는 어떻게 채워질까?”
숨어 있는 피드백을 찾아라~
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_5.html
※ Chapter 3 - 연습 문제1 - 오류를 찾아라~
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_55.html
※ Chapter 3 -연습 문제 2 “학생 수 모델, 과연 좋은 시작일까?”
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_11.html
※ Chapter 3 -연습 문제 3 “Weathering의 단위, 그리고 퇴적물(SEDIMENTS)의 단위는?”
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_18.html
※ Chapter 3 -연습 문제 4 "이런 경우 단위를 어떻게 정해야 하나?
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_92.html
※ Chapter 3 -연습 문제 5 “Biflow? 양방향 흐름에 대한 방정식을 세워 보자”
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_45.html
※ Chapter 3 -연습 문제 9 “왜 유출 유량(Flow)은 저량(Stock)의 크기에 좌우될까?” 그리고 ±Stock의 필요성
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_23.html
※ Chapter 3 -연습 문제 10 “Joe의 소리 지표(Sound Index)로 피드백을 완성하자!”
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_54.html
모델 수식 및 다운로드
회원 전용 다운로드 파일(ME-ch.3-ex 10.stmx)
Run Specs
Start Time 0
Stop Time 40
DT 1/4
Time Units 초
Equations
gas_in_the_tank(t) = gas_in_the_tank(t - dt) + (gas_flow_at_nozzle) * dt
INIT gas_in_the_tank = 0
UNITS: 갤론
gas_flow_at_nozzle = GRAPH(Sound_Index)
Points: (1.000, 1.000), (2.000, 0.500), (5.000, 0.000)
UNITS: 갤론/초
capacity_of_the_tank = 20
UNITS: 갤론
fullness = gas_in_the_tank/capacity_of_the_tank
UNITS: Dimensionless
Sound_Index = GRAPH(fullness)
Points: (0.8000, 1.000), (0.9000, 2.000), (1.0000, 5.000)
UNITS: 갤론/Months
※ 녹화 영상: https://youtu.be/BtZBkQX45Wo
해답:
Table 4.1에서는 **대기 중 CO₂(저량)**가 어떻게 유량(인위적 배출 - 육상·해양 흡수)으로 인해 100년 동안 2배 수준(약 1,500 GTC)까지 증가하는지를 10년 단위로 누적 계산하는 과정을 보여 줍니다.
시작 저량(Year 2000): 대기 중 CO₂ = 750 GTC
유입 유량(배출) 예: 6.4 GTC/년 → 10년간 64 GTC
유출 유량(흡수) 예: 3 GTC/년 → 10년간 30 GTC
1차 10년 후 저량 = 750 + (64) – (30) = 784 GTC
이후 매 10년 구간마다 배출/흡수 유량이 조금씩 증가/변동한다고 가정하여 누적
100년 후(2100년경): 대기 중 CO₂ ≈ 1,500 GTC (시작값의 2배)
시스템다이내믹스에서 일반적으로 쓰는 오일러(Euler) 방법을 간단히 표현하면,
즉,
여기서
r=0.20r = 0.20r=0.20 (20%/년)
Δt = 1년 (또는 0.5년)
2. Case A: Δt=1 (1년 스텝)
매년 말에 한 번씩 20% 증가분을 반영하여, “계단” 형태로 인구가 갱신됩니다.
t=0 (시작)
Population(0) = 10 (백만 명)
t=1년
Population(1) = 10 × (1 + 0.20×1) = 10 × 1.2 = 12
t=2년
Population(2) = 12 × 1.2 = 14.4
t=3년
Population(3) = 14.4 × 1.2 = 17.28
t=4년
Population(4) = 17.28 × 1.2 = 20.736
따라서, 4년 후 인구는 약 20.736백만 명이 됩니다.
3. Case B: Δt=0.5 (반년 스텝)
이번엔 6개월(0.5년)마다 인구를 10%(=0.2×0.5)씩 더해 주므로, 1년에 두 번 계산이 이뤄집니다. 4년이면 총 8스텝을 계산해야 합니다.
t=0 (시작)
Population(0) = 10
t=0.5년
Population(0.5) = 10 × (1 + 0.20×0.5) = 10 × 1.1 = 11
t=1.0년
Population(1.0) = 11 × 1.1 = 12.1
t=1.5년
Population(1.5) = 12.1 × 1.1 = 13.31
t=2.0년
Population(2.0) = 13.31 × 1.1 = 14.641
t=2.5년
Population(2.5) = 14.641 × 1.1 = 16.1051
t=3.0년
Population(3.0) = 16.1051 × 1.1 = 17.71561
t=3.5년
Population(3.5) = 17.71561 × 1.1 = 19.487171
t=4.0년
Population(4.0) = 19.487171 × 1.1 ≈ 21.4358881
최종적으로 4년 후 인구는 약 21.44백만 명이 됩니다.
4. 결과 비교 및 해석
DT=1년 → 4년 후에 약 20.736백만
DT=0.5년 → 4년 후에 약 21.436백만
스텝을 더 잘게(0.5년) 쪼갤수록 실제 “연속적”인 증가에 더 근접한 값을 얻고, Δt=1\Delta t=1Δt=1인 경우보다 조금 더 큰 인구치가 계산됩니다. 이는 시뮬레이션에서 스텝 크기를 줄일수록 정확도가 올라가는 전형적 사례를 보여줍니다.
참고: 연속적 해(analytic solution)
만약 이 모델이 “연속 성장”한다고 가정할 때, 실제 해석적(analytic) 해는
으로 나타낼 수 있습니다. t=4t=4t=4를 대입하면,
즉, “진짜” 연속 성장에 가장 가까운 값은 약 22.26백만이므로,
DT=0.5년 (21.44) → 상당히 근접,
DT=1년 (20.736) → 그보다 조금 더 낮게 근사
임을 확인할 수 있습니다.
정 박사의 블로그 글
☞ Step Size 의 개념에 대한 1단계 해설
https://benjaminkorea.blogspot.com/2025/03/step-size-1.html
☞ Step Size에 대해 살짝 더 파고 들기
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_16.html
☞ Joe의 고민, 어느 정도해야 정확한 건가요?
https://benjaminkorea.blogspot.com/2025/03/andrew-ford-modeling-environment_69.html
☞ Step Size에 대한 어려운 이야기: DT ≠ Step Size인 경우는?
https://benjaminkorea.blogspot.com/2025/03/dt-step-size.html
☞ 중학생도 이해(?)할 수 있는 Runge-Kutta 방식과 Euler 방식의 적분 계산법 차이
https://benjaminkorea.blogspot.com/2025/03/runge-kutta-euler.html
☞ DT 심화 학습: “유량 × 시간 = 저량의 증가분” 개념
워낙 중요한 모델이어서 별도 페이지에서 다룹니다. Mono Lake(Basin) Modeling 으로 검색하십시오.
모노 호수(Mono Lake) 모델링 종합 정리
녹화 영상: https://youtu.be/BaGAw7Z-X7U