촐 스키를 처음 매트랩으로 구현해 봤습니다.
u_ii 성분과 u_ij 성분으로 변환된 윗삼각행렬 하나와 그 전치행렬이
반대로 행렬곱 되면 원본놈이 나오는 것으로 알고 있는데요
매트랩에서는 세상에, 너무도 간단하게
>>B=rand(3)
B =
0.3290 0.1587 0.4877
0.0324 0.9230 0.0216
0.8427 0.7151 0.9285
아무렇게나 랜덤한 3바이3 행렬을 하나 만들었구요
운이 좋게도
>>C=chol(B)
C =
0.5736 0.2766 0.8502
0 0.9201 -0.2321
0 0 0.3896
변환이 바로 가능한 행렬이었네요. C에 촘스키를 넣었습니다.
>>CC=C.'
CC =
0.5736 0 0
0.2766 0.9201 0
0.8502 -0.2321 0.3896
이렇게 전치행렬로 혹은,
>>CC=transpose(C)
해도 결과는 같습니다.
이제 이걸
CC*C 하면 B가 나오겠지요
>>CC*C
ans =
0.3290 0.1587 0.4877
0.1587 0.9230 0.0216
0.4877 0.0216 0.9285
아, 뭔가 나왔네요
확인 해 볼까요?
>>B
B =
0.3290 0.1587 0.4877
0.0324 0.9230 0.0216
0.8427 0.7151 0.9285
.... ...
... .....?????
>>>>CC*C
ans =
0.3290 0.1587 0.4877
0.1587 0.9230 0.0216
0.4877 0.0216 0.9285
>>>>B
B =
0.3290 0.1587 0.4877
0.0324 0.9230 0.0216
0.8427 0.7151 0.9285
.... ....???