26.5 시뮬레이션 학습의 벤치마크와 평가

실습 · 연습문제 1개

주기 장의 에너지 스펙트럼 energy-spectrum

길이 LL인 주기 영역의 균일 격자 NN점에서 주어진 실수 장 uju_j의 에너지 스펙트럼을 계산한다. 학습된 시뮬레이터가 작은 규모를 뭉개는지(고파수 에너지 부족) 또는 비물리적 진동을 만드는지(고파수 에너지 과잉)를 보는 기본 지표다.

이산 Fourier 계수를 u^m=1N∑juje−2πijm/N\hat{u}_m = \frac{1}{N}\sum_j u_j e^{-2\pi i jm/N}으로 정의한다(np.fft.rfft(u) / N). 함수 energy_spectrum(u, L)을 완성해 (k, E)를 반환한다.

  • k: shape (N//2 + 1,), 파수 km=2πm/Lk_m = 2\pi m / L, m=0,1,…,N/2m = 0, 1, \dots, N/2
  • E: shape (N//2 + 1,), 모드 mm이 담는 에너지
E0=12∣u^0∣2,Em=∣u^m∣2  (0<m<N/2),EN/2=12∣u^N/2∣2  (N 짝수).E_0 = \tfrac{1}{2}|\hat{u}_0|^2, \qquad E_m = |\hat{u}_m|^2 \ \ (0 < m < N/2), \qquad E_{N/2} = \tfrac{1}{2}|\hat{u}_{N/2}|^2 \ \ (N \text{ 짝수}).

0<m<N/20 < m < N/2에서 계수가 두 배인 것은 음의 파수 −m-m의 몫을 합쳤기 때문이다. 이렇게 정의하면 Parseval 등식

∑mEm=1N∑juj22\sum_m E_m = \frac{1}{N}\sum_j \frac{u_j^2}{2}

이 성립한다. 우변은 격자점 평균 운동에너지다. NN은 짝수라고 가정한다.

테스트는 다음을 확인한다.

  • 무작위 장에서 Parseval 등식이 성립한다.
  • u=Asin⁡(3⋅2πx/L)u = A\sin(3 \cdot 2\pi x/L)이면 에너지가 m=3m = 3 하나에 모이고 그 값은 A2/4A^2/4이다.
  • 상수 장 u=cu = c이면 E0=c2/2E_0 = c^2/2이고 나머지는 0이다.
  • L=2πL = 2\pi이면 파수가 정수 0,1,…,N/20, 1, \dots, N/2이다.