Population growth
Simulizer는 시간에 따라 개체수가 어떻게 변하는지 그래프로 보여 줍니다. 이 페이지에서는 가장 기본이 되는 로지스틱 성장과, 두 종이 서로 영향을 주고받는 포식자-피식자 모델을 다룹니다.
Logistic growth
환경 수용력에 가까워질수록 성장이 둔화되는 모델.
Steps
- 새 파일을 만들고 다음을 두세요:
- 시점 수
n = 200 - 시간 간격
dt = 0.1 - 성장률
r = 0.5 - 수용력
K = 100
- 시점 수
- 길이
n + 1인 실수 배열pop을 만들고pop[0] = 5(초기 개체수). i가1부터n까지 도는 반복문 안에:pop[i] = pop[i-1] + dt * r * pop[i-1] * (1 - pop[i-1] / K)
- 반복 뒤에 그래프로 보내기 블록으로
pop을 넘기세요.
수용력 K = 100 에 점근하는 S자 곡선이 나타납니다.
Predator–prey (Lotka–Volterra)
토끼와 늑대 같은 두 종의 상호작용 모델.
Steps
- 시점 수
n = 2000,dt = 0.01. - 매개변수:
α = 1.0(먹이 성장),β = 0.1(포식 효율),γ = 0.075(포식자 사망),δ = 0.05(포식자 번식). - 배열
prey,predator(길이n + 1). 초기값prey[0] = 40,predator[0] = 9. - 반복문 안에:
prey[i] = prey[i-1] + dt * (α * prey[i-1] - β * prey[i-1] * predator[i-1])predator[i] = predator[i-1] + dt * (δ * prey[i-1] * predator[i-1] - γ * predator[i-1])
- 두 배열을 같은 시리즈 패널에 서로 다른 시리즈로 보내 비교하세요.
두 곡선이 위상차를 두고 번갈아 진동하는 모습이 나타납니다.
Pitfalls
- 시간 간격
dt가 크면 결과가 진동하거나 발산합니다.dt를 점점 작게 줄여 가며 결과를 비교하세요. 결과가 더 이상 달라지지 않고 안정되는dt값이면 그 모델에 충분합니다. - 단순한 오일러법을 쓰므로 오랜 시간을 시뮬레이션하면 오차가 쌓입니다.
Accuracy
이 페이지는 명시적 오일러 시간 적분을 사용합니다. 학습과 관찰에는 충분하지만, 연구 수준의 정밀도가 필요하다면 RK4 같은 더 정확한 적분법을 써야 합니다.