본문 바로가기
유도항법제어/최적제어

[PSOC-6] 유사 스펙트럴 방법 (Pseudospectral Method)

by 세인트 워터멜론 2022. 4. 23.

다음과 같이 경계조건을 갖는 미분방정식이 있다고 하자.

 

\[ \begin{align} & \mathcal{D} \mathbf{x}(t)= \mathbf{g}(t), \ \ \ \mathbf{x} \in V \subset \mathbb{R}^n \tag{1} \\ \\ & \mathcal{B} \mathbf{x}(t)=0, \ \ \ \mathbf{x} \in \partial V \end{align} \]

 

여기서 \(\mathcal{D}\) 는 미분, \(\mathcal{B}\) 는 경계조건을 뜻하는 연산자이다.

 

 

위 미분방정식의 미지해 \(\mathbf{x}(t)\) 를 근사적으로 구한 해(approximate solution) \(\mathbf{X}(t)\) 를 다음과 같은 형식으로 구하고자 한다.

 

\[ \mathbf{x}(t) \approx \mathbf{X}(t)= \sum_{i=1}^N \mathbf{d}_i \phi_i (t) \tag{2} \]

 

여기서 \( \phi_i (t)\) 를 트라이얼 함수(trial function)라고 한다. 예를 들어 트라이얼 함수를 삼각함수(trigonometric polynomials)로 한다면 푸리에 급수(Fourier series)가 된다. 이는 미분방정식의 해를 푸리에 급수로 근사화 하겠다는 이야기이다.

실제 해와 근사해 사이에 오차가 존재하는데 이 오차의 미분을 다음과 같이 잔차(residual)라고 정의한다.

 

\[ \mathbf{R}(t)=\mathcal{D} \left( \mathbf{X}(t)-\mathbf{x}(t) \right) = \mathcal{D} \mathbf{X}(t)-\mathbf{g}(t) \tag{3} \]

 

문제는 잔차 \(\mathbf{R}(t)\) 를 최소로 하는 근사해 \(\mathbf{X}(t)\) 를 어떻게 구할 것인가이다.

먼저 잔차의 크기를 정의하기로 한다. 크기의 정의를 알아야 '최소' 크기를 구할 수 있기 때문이다. 잔차의 크기는 다음과 같이 가중(weighted) 잔차의 적분값 또는 평균 잔차로 정의한다.

 

\[ J_j= \int_{t_0}^{t_f} \psi_j (t) \mathbf{R} (t) dt, \ \ \ j=1, ..., M \tag{4} \]

 

여기서 \(\psi_j (t)\) 를 테스트 함수(test function)라고 한다. 이제 문제는 \(J_j=0\) 으로 만들 수 있는 미분방정식의 근사해를 구하는 것이 된다. 만약 테스트 함수가 임의의 함수라면 \(J_j=0\) 은 곧 잔차가 \(\mathbf{R}(t)=0\) 이라는 의미이다.

근사해를 구할 때 트라이얼 함수를 어떻게 선택하느냐에 따라 여러 가지 방법으로 분류된다. 유한차분(finite difference)방법은 트라이얼 함수를 서로 겹치는 로컬 다항식(local polynomial)으로 잡는 방법이다. 유한요소(finite element)방법은 매끄러운 로컬 함수(local smooth function)로 잡는 방법이며, 스펙트럴 방법은 매끄러운 전역 함수(global smooth function)로 잡는 방법이다.

한편 테스트 함수를 어떻게 선택하느냐에 따라서도 여러 가지로 분류된다. 우선 갤러킨(Galerkin)방법은 테스트 함수를 트라이얼 함수와 동일하게 잡는 방법인데 이때 트라이얼 함수는 경계조건을 만족하는 함수로 선택해야 한다. 타우(Tau) 방법도 마찬가지로 트라이얼 함수와 동일하게 잡는 방법인데 이때는 트라이얼 함수가 경계조건을 만족하지 않아도 된다. 콜로케이션(collocation) 방법은 테스트 함수를 다음과 같이 디랙 델타(Dirac delta) 함수로 선택하는 방법이다.

 

\[ \psi_j (t)= \delta (t-t_j) \tag{5} \]

 

여기서 \(t_j\) 를 콜로케이션 포인트라고 한다.

 

 

유사 스펙트럴(pseudospectral) 방법은 트라이얼 함수를 매끄러운 전역함수로, 테스트 함수를 디랙 델타 함수로 선택하는 것을 말한다. 유사 스펙트럴 방법을 사용했을 때 평균 잔차를 \(0\) 으로 만들기 위해서는 어떤 조건이 필요한지 알아보자.

우선 평균 잔차식은 다음과 같이 된다.

 

\[ 0= \int_{t_0}^{t_f} \psi_j (t) \mathbf{R}(t) dt = \int_{t_0}^{t_f} \delta (t-t_j) \mathbf{R}(t) dt= \mathbf{R} (t_j) \tag{6} \]

 

즉 콜로케이션 포인트에서 잔차가 \(0\) 이 되어야 한다. 따라서 콜로케이션 포인트에서 미분방정식은 다음과 같이 되어야 한다.

 

\[ 0= \mathbf{R}(t_j )= \mathcal{D} \mathbf{X} (t_j )- \mathbf{g}(t_j ), \ \ \ j=1, ..., M \tag{7} \]

 

또는 식 (2)를 이용하면

 

\[ \mathcal{D} \mathbf{X}(t_j )= \sum_{i=1}^N \mathbf{d}_i \mathcal{D} \phi_i (t_j) = \mathbf{g}(t_j ), \ \ \ j=1,..., M \tag{8} \]

 

이다. 즉, 콜로케이션 포인트에서 근사해는 미분방정식을 정확히 만족시켜야 한다.

유사 스펙트럴 방법에서는 트라이얼 함수로 라그랑지 기저 다항식(Lagrange basis polynomial)을 사용한다. 이 때 콜로케이션 포인트의 선택은 근사해의 정확도에 큰 영향을 미친다. 일반적으로 등간격(equidistance) 콜로케이션 포인트는 정확도가 떨어지므로 포인트간의 간격이 서로 다른 콜로케이션을 선택한다. 주로 체비셰프(Chebyshev), LGL, LG, LGR 포인트 등이 사용되고 있다.

정리하면, 유사 스펙트럴 방법으로 경계조건을 갖는 미분 방정식의 근사해를 구하는 문제는 다음 식을 만족해야 하는 \(N\) 개의 파라미터 \(\mathbf{d}_i\) 를 구하는 문제이다.

 

\[ \mathcal{D} \mathbf{X}(t_j )= \sum_{i=1}^N \mathbf{d}_i \dot{L}_i (t_j) = \mathbf{g}(t_j ), \ \ \ j=1,..., M \tag{9} \]

 

여기서 \(L_i (t)\) 는 라그랑지 기저 다항식을 뜻한다. \(N\) 은 라그랑지 다항식의 보간점 갯수, \(M\) 은 콜로케이션(collocation) 포인트의 갯수이다.

 

 

보간점은 콜로케이션 포인트와 일치시키며 경계조건에 따라서 콜로케이션 포인트 외에 더 추가될 수 있다. 따라서 보간점의 갯수는 콜로케이션 포인트의 갯수보다 같거나 많다. 보간점을 콜로케이션 포인트와 일치시키는 이유는 라그랑지 기저 다항식(Lagrange basis polynomial)의 직교(orthogonality)특성을 이용하기 위해서이다.

 

 

 

댓글