장준하 항일 수기 "돌베개"


(창 28:10)   야곱이 브엘세바에서 떠나 하란으로 향하여 가더니
(창 28:11) 한 곳에 이르러는 해가 진지라 거기서 유숙하려고 그 곳의 한 돌을 가져다가 베개로 삼고 거기 누워 자더니
(창 28:12) 꿈에 본즉 사닥다리가 땅 위에 서 있는데 그 꼭대기가 하늘에 닿았고 또 본즉 하나님의 사자들이 그 위에서 오르락내리락 하고
(창 28:13) 또 본즉 여호와께서 그 위에 서서 이르시되 나는 여호와니 너의 조부 아브라함의 하나님이요 이삭의 하나님이라 네가 누워 있는 땅을 내가 너와 네 자손에게 주리니
(창 28:14) 네 자손이 땅의 티끌 같이 되어 네가 서쪽과 동쪽과 북쪽과 남쪽으로 퍼져나갈지며 땅의 모든 족속이 너와 네 자손으로 말미암아 복을 받으리라
 0. 故 장준하(1918~1975)선생은 일본에서 신학공부를 하고, 자원 형식으로 징용되어 중국에 있는 일본 군대로 가게 된다. 그는 거기서 애초부터 탈출을 염두해 두고 있었으며, 그의 부인에게도 '내 편지에 돌베개라는 단어가 쓰이면 내가 탈출한 줄 알라'고 일러두기까지 한다. 1944년 7월, 3명의 동지와 함께 쓰카다 부대를 탈출하여 7개월의 대 장정을 거쳐 충칭의 한국 임시정부에 도착한다. 여기서 장준하는 자신이 바랐던 현실과는 다른 임시 정부의 상황을 개탄스러워하나, 그럼에도 임시 정부를 위해 여러가지 일을 거든다. 그리고 광복이 찾아오고 광복 직후 대한민국으로 들어오게 된다. 하지만 그가 바라던 하나로 모인 모습의 조국은 아니었다.

1. 이 '돌베개'라는 수기의 어원은 포스트의 제일 처음 인용에서도 보듯이 성경 창세기에 나오는 야곱이 베고 잔 돌베개를 어원으로 하고있다. 성경에서 고난을 의미함과 같이 장준하에게는 이 돌베개가 일군을 탈출하여 임시정부로 가 독립 운동을 진행하는 여정의 고난을 상징한다고 볼 수 있다. 이 수기는 크게 1) 그가 일군을 탈출하기 전과 그 과정, 2) 탈출하여 충칭으로 가는 여정, 3) 충칭에서 임정의 일원이 되어 겪는 일, 이렇게 크게 세 가지 꼭지로 볼 수 있다.
 과연 명필가 답게 탈출의 급박함과, 동료들과 함께하는 긴 여정의 고난, 현재 국가가 처한 상황에 대한 개탄스러움이 때론 강렬하게 때론 담담하게 쓰여있다. 개인적으로는 세 번째 꼭지의 내용들이 정말 금과옥조라고 생각이 든다.

2. 일단 광복 직후 임시 정부의 입국과 그 사이의 대한민국의 정치 상황에 대해 잘 알 수 있다. 당시 임시 정부는 광복 직후 곧바로 입국하지는 못한다. 게다가 입국 후에도 임시 정부의 이름을 이용하려는 세력들에 휘둘리고, 미국의 냉대에 직면한다. 결국 신탁통치가 결정나면서 임정이 냉대를 당하고 와해되는 상황이 된 것이다. 또한 당시 38선 북쪽으로 진출한 소련을 위시한 공산 주의자들과 그 외 세력들이 주도권 싸움을 하면서 임정의 이름 값을 등에 업으려 하는 작태들이 너무도 잘 쓰여있다. 결국 이 시기가 어찌보면 현대 대한민국의 첫 단추였다. 이 첫 단추가 이상하게 끼워짐으로써 지금 친일파 후손 문제라든가 하는 것들이 아직도 존재 하고, 그런 사람이 국가의 요직까지 차지하는 우스운 상황이 된 것이다.
 그리고 그 당시의 상황이 요즘의 모습들과 너무 비슷하다. 시간의 간격으로 보면 70년 정도의 시간이 흘렀건만, 인간 군상들의 모습은 예나 지금이나 다를 것이 없다. 권력에 빌 붙는 자들, 자신의 세력 확장을 위해 남을 이용하려 하는 자들 등등... 인간의 욕망과 본성을 그대로 보는 것은 시대를 뛰어 넘어 불편함을 주기도 하고 마음 속의 냉소를 더욱 키우기도 한다.

3. 사람에게는 누구나 자신이 이루고자하는 꿈의 크기가 있는 것 같다. 장준하 선생은 국가의 독립이라는 큰 꿈을 가지고 고난과 역경을 거쳐 충칭까지 다 다랐다. 이런 수기나 이런 분들의 이야기를 접할 때 마다 상황을 지금의 나에게 대입시켜보게 된다. 과연 나라면 어땠을까 하는. 물론 어떠한 선택을 실제로 했을런지는 나 자신도 확답하지 못하겠다.
 하지만 하나 확실한 것은 이런 장준하 선생의 정의감이나 의지력만큼은 내 스스로에게 강요해도 어느정도는 괜찮지 않을까하는 생각이 든다.
 이 책은 이 땅의 젊은 사람들이라면 꼭 읽어봤으면 하는 바람이다. 그리고 덧붙여 장준하 선생의 사망이 의문사였고 그 당시 박정희 군정을 매우 비판하는 스탠스였다고 밝혀둔다.(물론 누구나 알겠지만...)


Quanto Option을 위한 Black-Scholes PDE

1. Quanto Option 이란

 Quanto option의 정의를 따오자면 다음과 같다. (출처: Investopedia)

DEFINITION of 'Quantity-Adjusting Option - Quanto Option'

A cash-settled, cross-currency derivative in which the underlying asset is denominated in a currency other than the currency in which the option is settled. Quantos are settled at a fixed rate of exchange, providing investors with shelter from exchange-rate risk. At the time of expiration, the option's value is calculated in the amount of foreign currency and then converted at a fixed rate into the domestic currency.


Read more: Quantity-Adjusting Option (Quanto Option) Definition | Investopedia http://www.investopedia.com/terms/q/quantooption.asp#ixzz3rtA3UYDD 
Follow us: Investopedia on Facebook

  예를 들면 KRW로 발행한 옵션인데, 기초 자산은 Eurostoxx 50이고, 환 관계없이 수익률에만 의존하는 옵션 정도로 생각하면 될 것 같다. 그렇다보니 실제 헤지 운용을 하는 입장에서는 FX에 대한 부분을 어떻게 처리 하느냐가 중요한 이슈가 된다.

2. PDE의 유도

 직전의 'Black-Scholes PDE의 유도'와 같은 방식으로 진행해보자. 추가적으로 $X$는 기초자산 통화에서 옵션의 통화로 바꿔주는 환율의 GBM 프로세스라 하자. Quanto call option을 가정하면 그 옵션의 값은 다음과 같이 표현할 수 있다.

$$ f = X_{0} (S-K)^{+} $$

 즉, 고정된 환율로 옵션의 수익을 변환한다고 생각할 수 있다. 그러면 BS PDE를 유도하는 방식대로 포트폴리오를 만들고, 그 포트폴리오의 아주 짧은 기간의 수익률이 옵션의 환에 사용되는 무위험 이자율만큼 되도록 한다. 여기서 $r$은 옵션의 환(domestic currency)이고 $r_{f}$는 기초 자산의 환이다. 여기서도 콜 옵션 매도 포지션을 가정한다.

$$ d(-X_{0}f + \Delta_{S}XS + \Delta_{M}XM_{f}) = r(-X_{0}f + \Delta_{S}XS + \Delta_{M}XM_{f})dt $$

 이 식에서 보면 $M_{f}$는 운용되는 현금이고 기초자산과 환이 같다. 그리고 각 항마다 각자 환율을 곱한 것을 볼 수 있다. 단 옵션 가격에만 초기 환율(고정 환율)이 곱해져 있다. 앞 포스트의 노테이션을 사용하여 좌항을 전개해보자.

$$ d(-X_{0}f + \Delta_{S}XS + \Delta_{M}XM_{f}) \\ = -X_{0}(\Theta dt + \Delta_{0} dS + 0.5\Gamma dS^2) + \\ \Delta_{S}(XdS + SdX + dXdS) + \Delta_{M}(XdM_{f} + M_{f}dX) $$

뭐가 많이 생겼다. 여기서 $X$ 자체가 어떤 GBM process이기 때문에 stochastic calculus를 적용해줘야 한다. 그렇다보니 환 $X$에 대한 노출을 잡아줄 필요가 있다.  위의 식을 $dS$와 $dX$에 대해 묶고 $dSdX = XS\rho\sigma_{S}\sigma_{X}$의 관계식을 사용하여 전개하면 다음과 같다.

$ d(-X_{0}f + \Delta_{S}XS + \Delta_{M}XM_{f}) = \\ -X_{0}(\Theta dt + 0.5\Gamma dS^2) + (-X_{0}\Delta_{0} + X\Delta_{S})dS  + (\Delta_{M}M_{f} +  \Delta_{S}S)dX \\ + \Delta_{S}XS\rho\sigma_{S}\sigma_{X} + \Delta_{M}r_{f}XM_{f}dt $

 그렇다면 stochastic term인 $dS$와 $dX$에 대한 민감도를 없애기 위해선 다음과 같이 $\Delta$를 잡아야 한다.

$ \Delta_{S} = \frac{X_{0}}{X} \Delta_{0} $
$ \Delta_{M}M_{f} = -\Delta_{S}S = -\frac{X_{0}}{X}\Delta_{0}S $

 즉, 환율로 나누어진 주식의 delta외에도 주식 delta 수량만큼의 현금 반대 포지션이 있어야 환에 대한 민감도를 없앨 수 있다는 의미가 된다. 이 경우 정확하게 헤지를 하려면 해당 현금에 대한 매도 포지션이 있어야 하는데 현실적으로 어려우므로 환 선물 등을 이용할 수 있다.
 위의 delta에 대한 식을 대입하여 조합하면 다음과 같은 식을 얻을 수 있다.

$ d(-X_{0}f + \Delta_{S}XS + \Delta_{M}XM_{f}) \\ = -X_{0}(\Theta + (r_{f} - \rho\sigma_{S}\sigma_{X})\Delta_{0}S + 0.5\sigma_{S}^{2}S^{2}\Gamma)dt $

 이제 우항을 앞서 구해진 delta식 등을 이용하여 전개하면 다음과 같다.

$ r(-X_{0}f + \Delta_{S}XS + \Delta_{M}XM_{f})dt = r(-X_{0}f + \Delta_{0}X_{0}S - \Delta_{0}X_{0}S)dt = -rX_{0}fdt $

 좌항과 우항을 조합하면 다음과 같다.

$ -X_{0}(\Theta + (r_{f} - \rho\sigma_{S}\sigma_{X})\Delta_{0}S + 0.5\sigma_{S}^{2}S^{2}\Gamma)dt = -rX_{0}fdt $

 이제 양 항을 $-X_{0}dt$로 나누면 다음과 같은 결론을 얻을 수 있다.

$ \Theta + (r_{f} - \rho\sigma_{S}\sigma_{X})\Delta_{0}S + 0.5\sigma_{S}^{2}S^{2}\Gamma = rf $

 즉, 기초 자산의 drift term이 $r_{f} - \rho\sigma_{S}\sigma_{X}$ 식으로 바뀐 Black-Scholes PDE를 도출할 수 있다.

 여기서 국내 시장의 상황상 $r_{f}$ 금리를 무엇을 사용하느냐가 이슈가 될 수 있다. 결국 운용하는데 있어 외환의 차입 또는 운용방식에 따라 금리를 맞게 사용해야 할 것이다.


Black-Scholes PDE의 유도

Black-Scholes PDE를 유도하는 방법을 살펴보자. 여기서 볼 방법은 옵션과 헤지 대상인 자산의 포트폴리오를 만들어 유도하는 방식이다.

우선 $f$라는 가격을 갖는 '콜 옵션'을 가정하자. 그리고 이 옵션의 기초 자산의 가격을 $S$라 하고, 운용 또는 차입을 할 수 있는 무위험 금리를 $r$이라고 하자. 여기서 이 콜 옵션을 팔았다고 가정하고 델타 헤지를 하게 되면 다음과 같은 포트폴리오를 구성 할 수 있다.

$ -f + \Delta_{S}S + \Delta_{M}M$

 여기서 $\Delta_{S}$는 헤지를 위해 거래해야 하는 기초 자산의 수량이고 $\Delta_{M}$은 주식을 사기 위해 차입한 자금의 수(수량이 있다면)이다. 그렇다면 자연스럽게 $M$은 무위험 금리로 운용되는 자금이라 볼 수 있다.

 옵션 헤지 운용은 헤지를 통한 옵션 운용이 무위험 금리만큼의 수익을 내는 것을 기본 가정으로 깔고 시작한다. 그러므로 위의 포트폴리오가 아주 짧은 시간(이라 쓰고 대충 하루라 읽는다)인 $dt$ 동안 변해야할 양은 다음과 같다.

$d(-f + \Delta_{S}S + \Delta_{M}M) = r(-f + \Delta_{S}S + \Delta_{M}M)dt $

 이제 이 식을 가지고 유도해보자. 일단 좌항부터 전개를 하자. 그 전에 편의를 위해 다음과 같이 미분항을 알려진(쉬운?) 노테이션으로 바꾸자.

$ \Theta = \frac{\partial{f}}{\partial{t}}, \Delta_{0} = \frac{\partial{f}}{\partial{S}}, \Gamma = \frac{\partial^2{f}}{\partial{S}^2}$

이 노테이션을 이용하면 앞의 포트폴리오 식을 다음과 같이 전개할 수 있다.

$ d(-f + \Delta_{S}S + \Delta_{M}M) = -(\Theta dt + \Delta_{0} dS + 0.5 \Gamma dS^2) + \Delta_{S}dS + \Delta_{M}dM$

 여기서 델타 헤지를 위해서 $dS$항을 없애야 한다. 그렇다면 다음과 같은 관계식이 성립하여야 한다. (Gamma에 붙은 항은 어차피 $S^2\sigma^2dt$만 남는다.)

$ \Delta_{0} = \Delta_{S}$

 즉, 기초 자산의 수량은 $S$로 미분한 값에 맞춰주면 된다는 의미이다. 그리고 $M$의 경우 짧은 시간동안의 변동량은 무위험 이자율 만큼이므로 다음과 같이 쓸 수 있다.

$ \Delta_{M}dM = r\Delta_{M}Mdt $

 이제 우항을 전개하면 다음과 같이 쓸 수 있다.

$ r(-f + \Delta_{S}S + \Delta_{M}M)dt = -rfdt + r\Delta_{0}Sdt + r\Delta_{M}Mdt $

 이제 앞서 구한 델타 값과 $M$에 대한 식을 이용하여 완성된 식으로 써보자.

$ -(\Theta dt + 0.5 \sigma^2 \Gamma S^2 dt) +  r\Delta_{M}Mdt = -rfdt + r\Delta_{0}Sdt + r\Delta_{M}Mdt $

 이 식을 잘 정리하면 최종 결과로 다음과 같은 식을 구할 수 있다.

$ \Theta + r\Delta_{0}S + 0.5 S^2\sigma^2 \Gamma = rf $

 즉, Black-Scholes PDE를 구할 수 있다.



BJJ - 다시 수련을 시작하며

근 1년 가까이 주짓수 수련을 쉬다가 최근 다시 시작했다.
다행히 집에서 버스 타고 10분 거리에 최근 도장이 생겼다.
그래서 예전과 달리 거리에 대한 부담도 없고, 애들 다 씻기고 생각날 때 휙 다녀올 수 있어 너무 좋다.

너무 쉬어서 다시 폼이 올라오려면 시간이 좀 걸리겠지만, 할 수 있다는 것 자체가 너무 기쁘다.
앞으로 하프 가드와 압박 패스를 주로 사옹하며 다듬을 예정이다.
물론 사범님이 가르쳐 주시는 기술도 꾸준히 다듬어야지.

Basis Spline

1. Basis Spline (B-Spline)이란?

 Spline을 영어 사전에서 찾아보면 다음과 같다.

Definition of SPLINE

1
:  a thin wood or metal strip used in building construction
2
:  a key that is fixed to one of two connected mechanical parts and fits into a keyway in the other;also :  a keyway for such a key
3
:  a function that is defined on an interval, is used to approximate a given function, and is composed of pieces of simple functions defined on subintervals and joined at their endpoints with a suitable degree of smoothness

 즉, 문자 그대로 어떤 두 지점을 잇는 어떤 것을 의미하는데, 커브 생성에 사용되는 spline도 같은 의미이다. (앞의 인용을 보면 3번 정의이다.)
 업계(금융 수치 해석)에서 많이 쓰는 spline은 cubic spline이라고 하여 두 점을 잇는 함수가 다음과 같이 3차 함수의 모양을 갖는다.

$ f(x) = ax^3 + bx^2 + cx + d $

 그래서 각 데이터 포인트를 연결하는 $a$에서 $d$까지의 계수를 찾아 부드러운 곡선으로 각 점을 잇는다. Basis-Spline(이하 B-Spline)은 조금 더 일반화 된 방식의 spline인데, 말 그대로 각 점을 정의된 Basis function으로 연결한다는 의미이다.
 (참고로 이 포스트의 내용 및 그림 등은 http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/ 이 사이트를 매우 많이 참고했다.)

 B-spline의 경우 knots, parameter, control point, data point, degree라는 개념을 짚고 넘어가야 한다.

  • Data point : interpolation이나 추정 대상이 되는 점을 의미한다. 함수 $y = f(x)$에서 x를 의미한다.
  • Parameter : 어떤 data point가 주어졌을 때 그 data point를 B-spline에 적용할 수 있게 쪼갠 값이다. 이 값을 구하기 위해 data point를 균등하게 자를 수도 있고, 그 외 현란한 방법으로 자를 수 도 있다.
  • Knots : knot은 말 그대로 하면 매듭이란 뜻으로 풀이가 된다. 여기서 knot은 basis function을 정의하는 기준 점 정도로 이해할 수 있다. Knot의 경우 parameter를 평균 내거나, parameter와 상관 없이 구간을 일정하게 쪼개기도 한다.
  • Control point : 이게 설명하기가 애매하다. 뒤에 나오겠지만, interpolation을 위해 사용되는 basis function에 곱해져 커브 상의 값을 가지고 오는데 쓰인다.
  • Degree : basis function의 차수를 의미한다. 3이면 cubic-spline과 동일하다.
 B-spline의 curve 추정 함수는 다음과 같다.

$ C(u) = \sum^{n}_{0} N_{i, d}(u)Q_{i} $

 여기서 C가 추정하고자 하는 커브 상의 값이고, $n$은 data point의 갯수에서 하나를 뺀 값이다. 즉, $n+1$이 data point의 수가 된다. 그리고 $d$가 degree를 말하고 $Q$가 control point이다. 즉, data point 수 만큼의 basis function과 control point 값을 곱하여 합하면 추정하는 값이 나온다는 의미이다.

 Basis function ($N_{i, d}(u)$)는 다음과 같이 회귀적으로 정의한다.

$ N_{i, 0}(u) = \left \{ \begin{array}{ll} 1, \mbox{if $u_{i} \leq u < u_{i+1}$} \\ 0, \mbox{otherwise}  \end{array} \right.  $

$ N_{i, d} = \frac{u - u_{i}}{u_{i+p} - u_{i}} N_{i,p-1}(u) + \frac{u_{i+p+1} - u}{u_{i+p+1} - u{i+1}} N_{i+1,p-1}(u) $


 Degree가 0이면 찾고자 하는 값의 인수가 해당 knot에 해당할 경우 1, 아니면 0을 넘겨주고, 이후에는 회기 함수를 이용하여 basis function의 값을 구한다. 그리고 그 값을 이용하여 커브 상의 값을 추정한다.

2. 구현하기

 B-Spline을 구현할 때 다음과 같은 순서로 코드를 제작하였다.

  1. Data point, 각 data point에 해당하는 결과 값, degree를 받아들임
  2. Data point를 이용하여 parameter 만들기
  3. Knot의 모음임 knot vector 만들기
  4. Global interpolation 또는 Global fitting 방식을 쓸 것인지에 따라 control point 구하기
  5. 값이 들어오면 추정 값을 넘겨주기
 이렇게 크게 다섯 개의 틀로 볼 수 있다.
 각각의 단계를 조금씩만 더 디벼보자. (조금만 디벼보자. 깊이는 나도 모르겠다. ㅎㅎ)

 2번의 경우 parameter를 생성하기 위해 데이터 구간을 균등하게 자르는 방법과, Chord length method, Centripetal method가 있다. 이 중 당연하게도(?) 가장 구현이 간단한 Uniformly spaced method(균등하게 자르기)를 이용하였다.  각 방식에 따라 추정하는 커브의 모양이 달라지는데, 다음의 퍼온 그림을 참고하자.

 3번의 경우 parameter와 상관 없이 knot을 구간의 갯수만큼 1/n하여 자르는 방법과 parameter를 평균내는 방법이 있다. 이 중 후자의 방법을 선택했다. 참고한 문서에서는 전자의 경우 chord length 등을 사용하면 결과가 제대로 안 나올 수 있다는 설명이 있다. (물론 쓰진 않지만. ㅎㅎ)
 knot을 만드는 과정을 식으로 표현하면 다음과 같다.
 여기서 p가 degree이다. knot의 경우 'data의 수(n+1) + degree(p) + 1'개 만큼 생성을 한다. 그리고 degree까지의 knot은 0(또는 data point 구간의 첫 번째 값)으로 지정하고, 'knot의 갯수(m+1) - degree(p) - 1'부터 마지막 knot은 1(또는 data point 구간의 마지막 값)으로 지정한다.

 그리고 마지막으로 control point를 구해주는데, global interpolation과 global fitting 두 가지 방식이 있다. Global interpolation의 경우 주어진 data point를 모두 통과하도록 제한을 두어 control point를 구하는 방식이고, global fitting은 least square 방식으로 커브의 에러를 최소화 시키는 방식으로 구하는 방식이다.
 Global interpolation은 다음의 식을 앞서 설명한 LU decomposition을 이용하여 푼다.

$ \mathbf{NQ=D}$

여기서 $\mathbf{N}$은 basis function의 $n\times n$ matrix이고 $D$는 data point vector 또는 matrix, $Q$는 control point vector 또는 matrix이다.
 Global fitting의 경우 다음의 식을 최소화 하도록 푼다.

$ E = 1/2 \sum^{m}_{k = 0} | \sum^{n}_{j=0}N_{j,d}\mathbf{Q_{j}} - \mathbf{D_{k}}|^2 $

 이 least square 식을 풀어 matrix 형태로 풀어내면 다음과 같은 system을 푸는 문제로 만들 수 있다.

$\mathbf{N^{T}NQ=N^{T}D}$


3. 결과 예제

 결과를 테스트 해보기 위해 간단하게 standard normal distribution의 PDF를 추정하도록 해보자. 여기서 degree는 3으로 하였으며, 데이터 포인트 갯수를 20개와 50로 나누어봤다. 그리고 interpolation과 fitting을 사용하여 어떤 차이가 있는지 보자.

N+1=50, D=3, Interpolation

N+1=50, D=3, Fitting
 100개의 data를 추정하는데 50개의 data point를 사용한 결과인데, x표가 closed form이고 선이 생성된 커브, +가 사용된 data point이다. point 수가 많기 때문에 fitting과 interpolation이 큰 차이를 보이지 않으나, fitting이 약간의 에러를 보여준다.

N+1=20, D=3, Interpolation

N+1=20, D=3, Fitting
 Data point를 20개로 줄이고 100개의 점을 추정할 경우, interpolation과 fitting이 차이를 보인다. 하지만 여기서 생각해봐야 할 것은 대상이 되는 커브 자체가 매우 부드러운 함수이기 때문에 상황에 따라서는 어떤 것이 원본치에 가까우냐는 이견의 여지가 있을 수 있다는 것이다.  (물론 datapoint 갯수가 더 줄어들면 fitting 방식의 커브가 더 많이 꺾이기도 한다.)

끝.

LU Decomposition

1. LU Decomposition이란?

 NxN 인 square matrix $ \mathbf{A}$가 있다. 이 matrix를 쪼갤 수 있는 방법은 매우 많다. 예를 들어 Cholesky decomposition을 통하여 $\mathbf{LL^{T}}$ 형식으로 lower triangle과 그 transpose로 쪼갤 수 있다. LU decomposition은 square matrix를 lower triangle과 upper triangle 두 부분으로 나누는 기법을 말한다.

$ \mathbf{A = LU} $

 예를 들어 $\mathbf{A}$라는 matrix가 3x3이라고 하면 이 matrix를 다음과 같이 나눌 수 있다.

$
\left( \begin{array}{ccc}  l_{1,1} & 0 & 0 \\ l_{2,1} & l_{2,2} & 0 \\ l_{3,1} & l_{3,2} & l_{3,3} \end{array} \right)
\left( \begin{array}{ccc}  u_{1,1} & u_{1,2} & u_{1,3} \\ 0 & u_{2,2} & u_{2,3} \\ 0 & 0 & u_{3,3} \end{array} \right)  =
\left( \begin{array}{ccc}  a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \end{array} \right) $

 이 matrix를 풀어보면 다음과 같이 쓸 수 있다.

$
\left( \begin{array}{ccc} l_{1,1}u_{1,1} & l_{1,1}u_{1,2} & l_{1,1}u_{1,3} \\
l_{2,1}u_{1,1} & l_{2,1}u_{1,2} + l_{2,2}u_{2,2} & l_{2,1}u_{1,3} + l_{2,2}u_{2,3} \\
l_{3,1}u_{1,1} & l_{3,1}u_{1,2} + l_{3,2}u_{2,2} & l_{3,1}u_{1,3} + l_{3,2}u_{2,3} + l_{3,3}u_{3,3} \end{array} \right)  =
\left( \begin{array}{ccc}  a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \end{array} \right) $

이렇게 보면 찾아야 하는 값은 $ 3 \times 3 + 3$개인데 식은 $3\times 3$개만 있는 상황이 된다. 즉 답이 하나가 아닐 수 있다는 의미이다. 이 때 자주 쓰이는 알고리듬이 'Crout's Method' 이다. 실제 내용이나 구현 방법은 링크 또는 Numerical Recipe라는 책을 찾아보면 자세히 나와있다.
 구현에 따라 $ \mathbf{A=LU}$가 아니라 $\mathbf{PA=LU}$의 형식으로 답을 구하는데 여기서 $\mathbf{P}$는 permutation matrix이고, orthogonal이므로 $\mathbf{A=P^{T}LU}$로 다시 역산할 수 있다.


2. 어디에 쓰는가. 

 LU Decomposition을 사용하면 $\mathbf{Ax=b}$ 형태의 linear system을 쉽게 풀 수가 있다. 일반적으로 이런 식을 풀기 위해 Gauss-Jordan Elimination을 사용한다. LU Decomposition으로 푸는 방식은 다음과 같다.

$ \mathbf{ Ax=(LU)x=L(Ux)=b} $

와 같이 식을 쓰게 되면 우선

$ \mathbf{ Ly=b }$ 

에서 $\mathbf{y}$를 Forward substitution방식으로 풀고,

$ \mathbf{Ux=y}$

식을 backward substitution으로 풀 수 있다.

인생논어 - 1

  0. 조형권님이 쓴 <<인생논어>> 를 읽고 필사한다는 생각으로 구문들을 옮겨 적으려 한다.  1. 나만의 속도를 유지하라.   子曰, 射不主皮 爲力不同科 古之道也 (자왈, 사부주피 위력부동과 고지도야)  해석: 활을 쏠 때 ...