실습 · 연습문제 1개
격자 위의 열방정식 잔차 heat-residual
PINN은 자동미분으로 잔차를 계산하지만, 학습된 모델이나 시뮬레이터 출력이 격자 값으로만 주어질 때도 잔차를 계산해 볼 수 있다. 1차원 열방정식
에 대해, 격자 값 u[n, j] (행이 시각, 열이 위치, 간격 , )에서 내부 점의 잔차
을 계산하는 함수 heat_residual(u, dx, dt, alpha)를 완성한다. 시간과 공간 모두 중심차분이므로 내부 점 , 에서만 정의된다.
| 인자 | 뜻 |
|---|---|
u |
shape (Nt, Nx) 격자 값 |
dx, dt |
공간·시간 간격 |
alpha |
확산 계수 |
반환값의 shape은 (Nt - 2, Nx - 2)다.
테스트는 다음을 확인한다.
- 정확해 의 잔차는 작고, 간격을 절반으로 하면 약 4분의 1로 준다(2차 정확도).
- 확산 계수를 틀리게 넣은 해는 잔차가 크다.
- 처럼 시간에 무관한 선형 함수의 잔차는 0이다.
힌트: 반복문 없이 배열 slicing으로 쓸 수 있다. u[2:, 1:-1] - u[:-2, 1:-1]은 모든 내부 점의 시간 중심차분 분자다.