24.2 물리 정보 신경망(PINN)

실습 · 연습문제 1개

격자 위의 열방정식 잔차 heat-residual

PINN은 자동미분으로 잔차를 계산하지만, 학습된 모델이나 시뮬레이터 출력이 격자 값으로만 주어질 때도 잔차를 계산해 볼 수 있다. 1차원 열방정식

ut=α uxxu_t = \alpha\,u_{xx}

에 대해, 격자 값 u[n, j] ≈u(xj,tn)\approx u(x_j, t_n) (행이 시각, 열이 위치, 간격 Δt\Delta t, Δx\Delta x)에서 내부 점의 잔차

rn,j=un+1,j−un−1,j2Δt−α un,j+1−2un,j+un,j−1Δx2r_{n,j} = \frac{u_{n+1,j} - u_{n-1,j}}{2\Delta t} - \alpha\,\frac{u_{n,j+1} - 2u_{n,j} + u_{n,j-1}}{\Delta x^2}

을 계산하는 함수 heat_residual(u, dx, dt, alpha)를 완성한다. 시간과 공간 모두 중심차분이므로 내부 점 1≤n≤Nt−21 \le n \le N_t - 2, 1≤j≤Nx−21 \le j \le N_x - 2에서만 정의된다.

인자 뜻
u shape (Nt, Nx) 격자 값
dx, dt 공간·시간 간격
alpha 확산 계수

반환값의 shape은 (Nt - 2, Nx - 2)다.

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

  • 정확해 e−απ2tsin⁡πxe^{-\alpha\pi^2 t}\sin\pi x의 잔차는 작고, 간격을 절반으로 하면 약 4분의 1로 준다(2차 정확도).
  • 확산 계수를 틀리게 넣은 해는 잔차가 크다.
  • u=xu = x처럼 시간에 무관한 선형 함수의 잔차는 0이다.

힌트: 반복문 없이 배열 slicing으로 쓸 수 있다. u[2:, 1:-1] - u[:-2, 1:-1]은 모든 내부 점의 시간 중심차분 분자다.