Simulizer

Pendulum

이 페이지의 결과는 좌우로 흔들리는 추의 각도가 시간에 따라 어떻게 변하는지 보여 주는 그래프입니다. 진폭이 작을 때는 단순 조화 진동에 가깝지만, 진폭이 커지면 그렇지 않다는 것을 직접 확인할 수 있습니다.

Model

각도 θ 의 시간 미분 방정식:

θ''(t) = -(g / L) sin(θ)

여기서 g 는 중력 가속도, L 은 줄의 길이입니다.

Steps

  1. 새 파일을 만들고 다음을 두세요:
    • g = 9.81, L = 1.0
    • 시간 간격 dt = 0.01, 시점 수 n = 2000
  2. 길이 n + 1 인 배열 theta, omega 를 만들고 초기값:
    • theta[0] = π / 4 (45도)
    • omega[0] = 0
  3. i1 부터 n 까지 도는 반복문 안에:
    • alpha = -(g / L) * sin(theta[i-1])
    • omega[i] = omega[i-1] + alpha * dt
    • theta[i] = theta[i-1] + omega[i] * dt
  4. 반복 뒤에 theta그래프로 보내기 블록으로 넘기세요.

Pitfalls

  • dt 가 크면 진동이 시간이 지날수록 오히려 커지는 비정상적인 결과가 나옵니다. 시점 수 n 을 늘리면서 dt 를 줄여 결과를 비교하세요.
  • 명시적 오일러는 에너지를 보존하지 않습니다. 오랜 시간에 걸친 정확도가 중요하다면 Symplectic EulerVerlet 적분을 직접 구현해야 합니다.

Variations

  • 소진폭 비교 — 초기 각도를 π/16 처럼 작게 두고, sin(θ) ≈ θ 근사 모델인 α = -(g/L) * θ 와 비교해 보세요. 진폭이 작을 때는 두 결과가 거의 같지만, 진폭이 커지면 서로 갈라집니다.
  • 감쇠 — 마찰을 흉내 내려면 α-c * omega[i-1] 항을 더하세요.

Accuracy

명시적 오일러를 쓰는 한, 시간이 갈수록 위상이 점점 어긋납니다. 정성적인 관찰에는 충분하지만, 정량적인 비교를 하려면 다른 적분법이 필요합니다.

simulizer · pendulum