비선형 문제들(Nonlinear problems) 과 shooting 방법



여기서부터 입력지금부터는 비선형문제들 (nonlinear problems)과 이것의 해 (solution)에 대해 알아보겠습니다. 자연계에 존재하는 물리 현상들은 미분방정식으로 표현되곤 합니다. 그런데 대부분의 미분방정식은 비선형미분방정식입니다. 이 글에서는 비선형미분방정식을 푸는 방법에 대해 알아보겠습니다.

 

비선형 문제들(Nonlinear)과 Shooting에 대하여

아래와 같은 미분방정식이 있다고 합시다. 여기서 $x$는 독립변수입니다. 그리고 $v$는 $x$에 관한 함수인데요. 아래의 미분방정식에서 주목할점은 각각의 coefficient $b,c$가 독립변수 $x$와 종속변수 $v$에 동시에 의존한다는 점이죠.

$$v^{\prime \prime} (x) = b(x,v(x)) v^{\prime}(x) + c(x,v(x))v(x) + d(x,v(x))$$

그러면 위와 같은 방정식은 $v$에 관한 nonlinear equation 입니다. 이러한 문제들의 간단한 예는 아래와 같고 앞으로 다루게 될 문제의 하나의 예시입니다.

$$v^{\prime \prime}(x) = 3v(x) + x^2 + 10 [v(x)]^3, 0\leq x \leq 1$$

위에서 본 미분방정식은 boundary condition을 가질 수 있습니다. 이 boundary condition 은 아래와 같은 nonlinear한 꼴을 가질 수도 있어요.

$$[v(0)]^2 + v^{\prime}(0)=1, v(1) = [v^{\prime}(1)]^2$$

이러한 nonlinear problem에는 두개의 간단하 접근 방식이 있습니다. 하나는 discretization 하는 방법이 있어요. 그런데 이 글에서는 discretization 하는 방법 말고 다른 방법에대해 알아보겠습니니다. 주로 projectile problem 에 대해 알아보겠습니다.

 

발사체 문제와 shooting

projectile problem은 $\dot{m}=0, T=0$라는 조건과 함께 아래와 같은 방정식으로써 표현됩니다.

$$\dot{x} = v\cos \theta, \dot{y} = v \sin \theta, \dot{v} = – \frac{1}{2m} c\rho sv^2 – g \sin \theta , \dot{\theta} = – \frac{g}{v} \cos \theta $$

그리고 여기에 아래와 같은 초기조건이 딸려있다.

$$x(0)=y(0)=0, v(0) = \bar{v}$$

발사각도를 $\theta(0)=\bar{\theta}$라고 표현하기도 하였다. 그런데 이제부터는 $\theta(0) = \bar{\theta}$라는 조건 대신에 어떤 시점 $t_f$에 발사체가 땅에 닿는다는 조건인 $y(t_f)=0$을 부과하겠다. 발사체에 관한 방정식은 $x,y,v,\theta$에 대하여 비선형적이다. 그러므로 주어진 조건을 종합하면 이 문제는 두점에 대한 경계값 문제로 줄어든다. 이것은 solution 을 가질수도 있고 아닐수도 있다. 예를들어 $t_f$가 초기 속도인 $\bar{v}$보다 매우 길때 말이다. 

이문제의 numerical solution을 구하는 방법에 알아보려고 한다. 어떤 방식으로 할까? 발사체의 각도를 달리해서 계속 쏘아 올리는 시뮬레이션을 함으로써 numerical solution을 구하려고 한다. 이것을 식으로 표현하면 $\theta(0)=\bar{\theta}_1$에서 $\bar{\theta}_1$을 계속 조절해서 발사체를 shooting하고 이랬을 때 $y(t_f) = 0$에 가까워진다면 적당한 solution을 찾았다고 생각할 것이다. $y(t_f)\neq 0$이라면 $\bar{\theta}_1$를 조절해서 다시 쏠것이다. 이러한 방법을 shooting method라고 한다.

 

다른 경계값 문제들

지금부터는 shooting method를 다른 경계값 문제들에 적용할 것이다. 심지어 이러한 shooting에는 물리적인 유사성이 없을지도 모른다. 예를들어서 위에서 소개한 방정식에서 아래와 같은 경계값 조건이 있다고 해보자.

$$v(0)=\alpha, v(1)=\beta$$

이러한 경우에 $s$를 $v^{\prime}(0)$의 조건으로 넣고 아래의 초기값 문제를 풀려고 노력할 수 있다. 

$$v^{\prime \prime}=3v + 10v^3 + x^2 , v(0)=\alpha, v^{\prime}(0)=s$$

궁금한 $x$의 범위는 $x=1$까지 이므로 위의 미분방정식을 $x=1$까지만 풀려고 한다. 만약에 위의 미분 방정식을 풀었을 때 $v(1)$이 $\beta$와 가깝지 않다면 $s$를 다시 조정하고 다시 시도할것이다.

shooting method의 주요 관심사는 위의 parameter $s$를 shooting전에 잘 설정하는 것이다. 이러한 $s$를 찾는 문제는 어떤 nonlinear function의 root를 찾는 문제로써 생각할 수 있다. $v(x;s)$를 위에서 언급한 초기값 문제 ($v^{\prime}(0)$)의 해라고 해보자. 그리고 아래와 같은 함수를 정의하자.

$$f(s) = v(1;s)-\beta$$

그러면 shooting method에서 $s$를 $f(s)=0$이 되도록 설정하는 것이 필요하다. 그리고 어느 수치적인 방법이던 해를 찾기 위해서 사용할 수 있다. 다른 방법들에 대해서는 다음에 알아보도록 하자. 

 

Systems of Equations

shooting method는 일반적인 2점에서의 경계값 조건이 주어진 1계 미분방정식 시스템에도 적용할 수 있다. 아래의 시스템을 생각해보자.

$$\mathbf{u}^{\prime} = R(\mathbf{u},t), 0\leq t \leq 1$$

여기서 $\mathbf{u}(t)$는 $n$ dimensional vector이고 component는 $u_i(t), i=1,2,…,n$이다. $u_1,…,u_n$중 $m$개의 함수는 $t=1$에서의 조건이 주어졌다고 가정하고 $n-m$개는 $t=0$에서 조건이 주어졌다고 가정하자. 이러면 $n$개의 boundary 조건을 얻게 된다. $t=0$에서 조건을 갖고 있는 함수들의 set을 $U_0$라고 표시하자. 그리고 $t=1$에서 조건을 갖고 있는 함수들의 set을 $U_1$이라고 표시하자. 이 두집합 $U_0$와 $U_1$는 intersection을 가질 수 있다. 만약에 $u_1$은 $t=0$과 $t=1$에서 조건을 가질 수 잇고 $u_2$는 아예 조건을 가지지 못할 수도 있다. shooting method를 적용하기 위하여 initial values $s_1,…s_m$를 $U_1$에 부과해서 아래와 같은 초기값 문제를 수치적으로 푸는 방법을 택할 수 있다.

$$\mathbf{u} = R ( \mathbf{u},t), \mathbf{u}(0) \text{ given by boundary conditions or $\{s_1,…,s_m\}$})$$ 

다음으로는 $u_i \in U_1$의 값들을 $\mathbf{u}(1;s)$과 비교해본다. 이러한 경계값 문제를 풀기위해서 초기값인 $s_i$는 반드시 다음을 만족하여야 한다.

$$u_i(1,\mathbf{s}) = \text{ given value, } u_i \in U_1$$

이것은 m개의 unknown이 있는 m개의 비선형 방정식으로 구성된 시스템이다. 추후에 이러한 방법들에 대해 생각해보자.

 

Instability

shooting method는 개념적으로 간단할지라도 초기값 문제에서 맞닥드릴수 있는 instability라는 문제가 있을 수 있다. 

 

 

 

Leave a Comment