14 minute read

์ˆ˜ํ•™๊ณผ ๋ณต์ˆ˜์ „๊ณต์„ ์œ„ํ•ด ์กธ์—… ๋งˆ์ง€๋ง‰ ํ•™๊ธฐ์— โ€œ์ˆ˜์น˜ํ•ด์„๊ฐœ๋ก โ€ ์ˆ˜์—…์„ ๋“ฃ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™๊ณผ ์กธ์—…์‹œํ—˜๋„ ๊ฒธ์‚ฌ๊ฒธ์‚ฌ ์ค€๋น„ํ•  ๊ฒธ ํ™”์ดํŒ… ํ•ด๋ด…์‹œ๋‹ค!! ์ „์ฒด ํฌ์ŠคํŠธ๋Š” โ€œNumerical Analysisโ€œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋“ค์–ด๊ฐ€๋ฉฐ

์ง€๊ธˆ๊นŒ์ง€๋Š” ํ•˜๋‚˜์˜ Polynomial์„ ํ†ตํ•ด ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ฐ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋†’์€ ์ฐจ์ˆ˜์˜ Polynomial์„ ๋งŒ๋“ค๊ฒŒ ํ–ˆ๊ณ , ์ด๋กœ ์ธํ•ด์„œ โ€œRunge Effectโ€œ์™€ ๊ฐ™์ด ํ•จ์ˆ˜๊ฐ€ ํฌ๊ฒŒ ์–ด๊ธ‹๋‚˜๋Š” ํ˜„์ƒ๋„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋Œ€์•ˆ์œผ๋กœ ๋‚˜์˜จ ๊ฒƒ์ด โ€œPiecewise-Polynomial Approximationโ€์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ์€ ๊ฐ ๊ตฌ๊ฐ„์„ ๋‚ฎ์€ ์ฐจ์ˆ˜์˜ $n$์ฐจ ๋‹คํ•ญ์‹์œผ๋กœ ๊ทผ์‚ฌํ•˜๊ณ  ์ด๋“ค์„ ๋ชจ์Œ์œผ๋กœ์จ ๊ทผ์‚ฌ ํ•จ์ˆ˜๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

1์ฐจ ์Šคํ”Œ๋ผ์ธ (Linear)

Piecewise-Linear Interpolation ๋ฐฉ๋ฒ• ์ž…๋‹ˆ๋‹ค.

๋‹จ์ˆœํžˆ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ $(x_1, y_1), \dots, (x_n, y_n)$๋ฅผ ์„œ๋กœ ์ด์–ด์ฃผ๋Š” ๋ผ์ธ์„ ๊ทธ๋ ค์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜ํ•™์ ์œผ๋กœ๋Š”

$S(x)$๋Š” ๊ฐ ๊ตฌ๊ฐ„ $[x_j, x_{j+1}]$ ๋ณ„๋กœ $S_j(x)$ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๊ตฌ๊ฐ„ ํ•จ์ˆ˜ $S_j(x)$๋Š” ์•„๋ž˜๋ฅผ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • $S_j(x_j) = f(x_j) = S_j(x_{j+1}) = f(x_{j+1})$
  • $S_{j}(x_{j+1}) = S_{j+1}(x_{j+1})$

๊ทธ๋Ÿฌ๋‚˜, ๋‹จ์ ์€ ์ด ๋ณด๊ฐ„ ํ•จ์ˆ˜๋Š” ๊ฐ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์—์„œ ๋ฏธ๋ถ„ ๋ถˆ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ๊ทธ๋งŒํผ ์Šค๋ฌด์Šค ํ•˜์ง€ ์•Š์€ ๊ทผ์‚ฌ๋ฒ•์ž…๋‹ˆ๋‹ค.

2์ฐจ ์Šคํ”Œ๋ผ์ธ (Quadratic)

์ด๋ฒˆ์—๋Š” ๊ฐ ๊ตฌ๊ฐ„ ํ•จ์ˆ˜๋ฅผ 2์ฐจ ํ•จ์ˆ˜๋กœ ๊ทผ์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์œ„์˜ Piecewise-Linear์—์„œ ์•„๋ž˜์˜ ์กฐ๊ฑด๋งŒ ์ถ”๊ฐ€ ๋˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • $S_{j}โ€™(x_{j+1}) = S_{j+1}โ€™(x_{j+1})$

๋„ํ•จ์ˆ˜์˜ ๊ฐ’์„ ๊ณ ๋ คํ•ด ๊ทผ์‚ฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค๋งŒ, ๊ณก๋ฅ (2์ฐจ ๋„ํ•จ์ˆ˜)๊ฐ€ ์—ฐ์†์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ณก๋ฅ ์ด ๋ถˆ์—ฐ์†ํ•˜๋ฉด ๋ถ€๋“œ๋Ÿฌ์šด ๊ณก์„ ์˜ ๋А๋‚Œ์ด ๋‚˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ์ ์œผ๋กœ๋„ ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์›€์ด ์ƒ๊ธด๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ณดํ†ต์€ 3์ฐจ ํ•จ์ˆ˜๋กœ ๊ทผ์‚ฌํ•˜๋Š” Cubic Spline ๊ทผ์‚ฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉ ๋ฉ๋‹ˆ๋‹ค.

3์ฐจ ์Šคํ”Œ๋ผ์ธ (Cubic)

์ด๋ฒˆ์—๋Š” ๊ฐ ๊ตฌ๊ฐ„ ํ•จ์ˆ˜๋ฅผ 3์ฐจ ํ•จ์ˆ˜๋กœ ๊ทผ์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ์ž…๋‹ˆ๋‹ค. ๊ณก๋ฅ ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ธ 2์ฐจ ๋„ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์กฐ๊ฑด์ด ์ถ”๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

  • $S_{j}โ€™โ€˜(x_{j+1}) = S_{j+1}โ€™โ€˜(x_{j+1})$

Cubic Spline์€ ๊ณก๋ฅ ์˜ ์—ฐ์†์„ฑ์ด๋ผ๋Š” ๋‚˜์ด์Šคํ•œ ์กฐ๊ฑด์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์Šคํ”Œ๋ผ์ธ ๊ทผ์‚ฌ ๊ธฐ๋ฒ• ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•ž์œผ๋กœ์˜ ๋…ผ์˜๋Š” ๋ชจ๋‘ Cubic Spline์„ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Boundary Condition

์ด๋•Œ, ์กฐ๊ธˆ๋” ์Šค๋ฌด์Šคํ•œ ๋А๋‚Œ์„ ์ฃผ๊ธฐ ์œ„ํ•ด ๊ฒฝ๊ณ„ ๋…ธ๋“œ $x_0$, $x_n$์—์„œ ์ถ”๊ฐ€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋„๋ก ๊ทผ์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Natural Boundary
    • $Sโ€™โ€˜(x_0) = Sโ€™โ€˜(x_n) = 0$
  • Clamped Boundary
    • $Sโ€™(x_0) = fโ€™(x_0)$ and $Sโ€™(x_n) = fโ€™(x_n)$
    • ์ฐธ๊ณ ๋กœ โ€œclampโ€๋Š” ์ง‘๊ฒŒ๋ผ๋Š” ๋œป ์ž…๋‹ˆ๋‹ค. ์Šคํ”Œ๋ผ์ธ ๊ณก์„ ์˜ ์–‘ ๋๋‹จ์„ ๊ณ ์ •ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋ผ๋Š” ๋ง ์ž…๋‹ˆ๋‹ค.

Number of Constants

์ฃผ์–ด์ง„ $n$๊ฐœ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ $(x_1, y_1), \dots, (x_n, y_n)$์— ๋Œ€ํ•ด $(n-1)$๊ฐœ์˜ Cubic polynomial์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ ๋ฉ๋‹ˆ๋‹ค.

\[\begin{aligned} S_1(x) &= a_1 + b_1(x-x_1) + c_1(x-x_1)^2 + d_1(x-x_1)^3 \\ S_2(x) &= a_2 + b_2(x-x_2) + c_2(x-x_2)^2 + d_2(x-x_2)^3 \\ &\vdots \\ S_{n-1}(x) &= a_{n-1} + b_{n-1}(x-x_{n-1}) + c_{n-1}(x-x_{n-1})^2 + d_{n-1}(x-x_{n-1})^3 \\ \end{aligned}\]

์ฆ‰, Cubic Spline์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„  $4(n-1)$๊ฐœ์˜ ์ƒ์ˆ˜ ๊ฐ’๋“ค์„ ์•Œ์•„๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Cubic Spline์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” $4(n-1)$ ์ „๋ถ€๊ฐ€ ์•„๋‹ˆ๋ผ ์˜ค์ง $c_j$์˜ ๊ฐ’๋งŒ ๋ชจ๋‘ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‚˜๋จธ์ง€ $a_j, b_j, d_j$์˜ ๊ฐ’๋„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ฆ๋ช… ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค!

Uniqueness of Natural Cubic Spline

IF $f$ is defined at $a = x_1 < \cdots < x_n = b$,

then $f$ has a โ€œunique natural splineโ€ interpolant $S$ on the nodes $x_1, \dots, x_n$;

that is, a spline interpolant that satisfies the natural boundary conditions $Sโ€™โ€˜(a) = Sโ€™โ€˜(b) = 0$.

Proof

โš ๏ธ ์ฃผ์˜! ์ด์–ด์ง€๋Š” ์ฆ๋ช…์€ ์ •์‹ ์„ ์•„๋“ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹คโ€ฆ

Spline ์ œ์•ฝ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์•„๋ž˜์˜ ์‹์ด ์„ฑ๋ฆฝ ํ•ฉ๋‹ˆ๋‹ค.

\[a_j = y_j = S_j(x_j)\]

์ฆ‰, ๋ชจ๋“  $a_j$์˜ ๊ฐ’์€ ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์˜ $y_j$ ๊ฐ’์„ ํ†ตํ•ด์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ $4(n-1)$๊ฐœ ์ƒ์ˆ˜ ์ค‘์— $a_j$์— ํ•ด๋‹นํ•˜๋Š” $(n-1)$๊ฐœ๋Š” ๊ตฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.


์ธ์ ‘ํ•œ ์Šคํ”Œ๋ผ์ธ์€ $S_j(x_{j+1}) = S_{j+1}(x_{j+1})$๊ฐ€ ์„ฑ๋ฆฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

\[\begin{aligned} S_j(x_{j+1}) &= a_j + b_j(x_{j+1} - x_j) + c_j(x_{j+1}-x_j)^2 + d_j(x_{j+1}-x_j)^3 \\ S_{j+1}(x_{j+1}) &= a_{j+1} \end{aligned}\]

๋‹ค์‹œ ์ •๋ฆฌํ•˜๋ฉด,

\[a_{j+1} = a_j + b_j(x_{j+1} - x_j) + c_j(x_{j+1}-x_j)^2 + d_j(x_{j+1}-x_j)^3\]

์ธ๋ฐ, $h_j = x_{j+1} - x_j$๋ผ๊ณ  ํ•˜๊ณ , $\Delta_j = y_{j+1} - y_j = a_{j+1} - a_j$๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค. ์ฐธ๊ณ ๋กœ $h_j$์™€ $\Delta_j$ ๋‘˜๋‹ค ๋ฐ์ดํ„ฐ ๋…ธ๋“œ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ƒ์ˆ˜๊ฐ’ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด,

\[\begin{aligned} a_{j+1} &= a_j + b_j h_j + c_j h_j^2 + d_j h_j^3 \\ a_{j+1} - a_j &= b_j h_j + c_j h_j^2 + d_j h_j^3 \\ \Delta_j &= b_j h_j + c_j h_j^2 + d_j h_j^3 \\ \end{aligned}\]

์ด๊ฒƒ์„ $b_j$์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

\[b_j = \frac{\Delta_j}{h_j} - c_j h_j - d_j h_j^2\]

(์—ฌ๊ธฐ์—์„œ ๋ฏธ์ง€์ˆ˜๋Š” $c_j$์™€ $d_j$ ๋ฟ์ธ ๊ฒƒ์„ ์œ ๋… ํ•ฉ๋‹ˆ๋‹ค)


๋„ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์Šคํ”Œ๋ผ์ธ์˜ ์ œ์•ฝ ์กฐ๊ฑด์œผ๋กœ ๋“ฑ์‹์„ ์„ธ์›Œ๋ด…์‹œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด,

\[\begin{aligned} S_j'(x_{j+1}) &= b_j + 2 c_j(x_{j+1}-x_j) + 3 d_j(x_{j+1}-x_j)^2 = b_j + 2c_j h_j + 3 d_j h_j^2 \\ S_{j+1}'(x_{j+1}) &= b_{j+1} \end{aligned}\]

์Šคํ”Œ๋ผ์ธ์˜ ์„ฑ์งˆ์— ์˜ํ•ด $S_jโ€™(x_{j+1}) = S_{j+1}โ€™(x_{j+1})$

\[b_{j+1} = b_j + 2 c_j h_j + 3d_j h_j^2\]

(์ฐธ๊ณ ๋กœ ์œ„์˜ ๋“ฑ์‹์ด ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹คโ€ฆ ใ…‹ใ…‹)


๋งˆ์ง€๋ง‰์œผ๋กœ ๊ณก๋ฅ ์— ๋Œ€ํ•ด์„œ๋„ ์•„๋ž˜์˜ ์‹์ด ์„ฑ๋ฆฝํ•œ๋‹ค.

\[\begin{aligned} S_j''(x_{j+1}) &= 2 c_j(x_{j+1}-x_j) + 6 d_j(x_{j+1}-x_j) = 2 c_j + 6d_j h_j \\ S_{j+1}''(x_{j+1}) &= 2 c_{j+1} \end{aligned}\]

๋”ฐ๋ผ์„œ,

\[c_j + 3 d_j h_j = c_{j+1}\]

์ด๊ฑธ $d_j$์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ฉด,

\[d_j = \frac{c_{j+1} - c_j}{3 h_j}\]


์•„๊นŒ ์œ„์—์„œ $b_j$์„ ๋ฏธ์ง€์ˆ˜ $c_j$์™€ $d_j$๋กœ ํ‘œํ˜„ํ–ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋‚˜์š”? ๊ฑฐ๊ธฐ์—์„œ $d_j$๋ฅผ $c_j$์— ๋Œ€ํ•œ ์‹์œผ๋กœ ๋ฐ”๊พธ๋ฉด $b_j$๋„ $c_j$์— ๋Œ€ํ•œ ์‹์œผ๋กœ๋งŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

\[\begin{aligned} b_j &= \frac{\Delta_j}{h_j} - c_j h_j - d_j h_j^2 \\ &= \frac{\Delta_j}{h_j} - c_j h_j - \frac{c_{j+1} - c_j}{3 h_j} h_j^2 \\ &= \frac{\Delta_j}{h_j} - \frac{h_j}{3}(2c_j + c_{j+1}) \end{aligned}\]

์œ„์˜ ๋“ฑ์‹์€ ๋งŒ์•ฝ $c_j$, $c_{j+1}$์˜ ๊ฐ’์„ ์•ˆ๋‹ค๋ฉด, $b_j$์˜ ๊ฐ’์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ, $4(n-1)$๊ฐœ ์ƒ์ˆ˜ ์ค‘์—์„œ

  • $a_j$๋Š” ๋ฐ์ดํ„ฐ ๋…ธ๋“œ๋กœ ๊ฒฐ์ •ํ–ˆ๊ณ ,
  • $d_j$๋Š” $c_j$, $c_{j+1}$์˜ ๊ฐ’์œผ๋กœ ๊ฒฐ์ •ํ•˜๊ณ ,
  • $b_j$๋„ $c_j$, $c_{j+1}$์˜ ๊ฐ’์œผ๋กœ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Cubic Spline์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„  โ€œ๋ชจ๋“  $c_j$์˜ ๊ฐ’๋งŒ ๊ฒฐ์ •ํ•˜๋ฉด ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ๋”ฐ๋ผ์„œ ๊ฒฐ์ •โ€ ๋ฉ๋‹ˆ๋‹ค.


$c_j$์— ๋Œ€ํ•œ ๋ฐฉ์ •์‹์„ ์„ธ์šฐ๊ธฐ ์œ„ํ•ด ๋„ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋“ฑ์‹ $b_{j+1} = b_j + 2 c_j h_j + 3d_j h_j^2$๋ฅผ ํ™œ์šฉํ•ด๋ด…์‹œ๋‹ค. $b_j$์— $c_j$๋“ค์„ ๋Œ€์ž…ํ•ด์ค๋‹ˆ๋‹ค.

\[\frac{\Delta_{j+1}}{h_{j+1}} - \frac{h_{j+1}}{3}(2c_{j+1} + c_{j+2}) = \left( \frac{\Delta_{j}}{h_{j}} - \frac{h_{j}}{3}(2c_{j} + c_{j+1}) \right) + 2 c_j h_j + 3 \left( \frac{c_{j+1} - c_j}{3 h_j} \right) h_j^2\]

์ด ์‹์„ $c_j, c_{j+1}, c_{j+2}$์— ๋Œ€ํ•œ์‹์œผ๋กœ ์ž˜ ์ •๋ฆฌํ•ด๋ด…์‹œ๋‹ค.

\[\begin{aligned} \left( \frac{2 h_j}{3} - 2 h_j + h_j \right) c_j + \left( - \frac{2h_{j+1}}{3} + \frac{h_j}{3} - h_j \right) c_{j+1} + \left( - \frac{h_{j+1}}{3} \right) c_{j+2} &= \left( - \frac{\Delta_{j+1}}{h_{j+1}} + \frac{\Delta_j}{h_j} \right) \\ \left( - h_j \right) c_j + 2 \left( - h_{j+1} - h_j \right) c_{j+1} + \left( - h_{j+1} \right) c_{j+2} &= 3 \left( - \frac{\Delta_{j+1}}{h_{j+1}} + \frac{\Delta_j}{h_j} \right) \\ h_j \cdot c_j + 2 \left( h_{j+1} + h_j \right) \cdot c_{j+1} + h_{j+1} \cdot c_{j+2} &= 3 \left( \frac{\Delta_{j+1}}{h_{j+1}} - \frac{\Delta_j}{h_j} \right) \end{aligned}\]

์‹์„ ์ „๊ฐœ ํ•˜๋Š” ๊ณผ์ •์ด ์–ด์ง€๋Ÿฌ์› ์ง€๋งŒ, ๊ฒฐ๊ตญ ํ•ต์‹ฌ์€ ์ด๋Ÿฐ ์ผ๋ฐ˜ํ•ญ ๊ด€๊ณ„๊ฐ€ ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด ์ผ๋ฐ˜ํ•ญ ๊ด€๊ณ„๋Š” ์ด์›ƒํ•œ ์„ธ ๊ฐœ์˜ $c$ ๊ฐ’๋“ค ๊ฐ„์˜ ์„ ํ˜•๊ด€๊ณ„๋ฅผ ๋งํ•ด์ค๋‹ˆ๋‹ค.

\[h_j \cdot c_j + 2 \left( h_{j+1} + h_j \right) \cdot c_{j+1} + h_{j+1} \cdot c_{j+2} = 3 \left( \frac{\Delta_{j+1}}{h_{j+1}} - \frac{\Delta_j}{h_j} \right)\]

๊ทธ๋ฆฌ๊ณ  ์ด ์„ ํ˜• ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์„ ํ˜• ๋ฐฉ์ •์‹์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

\[A\mathbf{c} = \mathbf{b}\]

where

\[A = \left( \begin{matrix} 1 & 0 & 0 \\ h_1 & 2 (h_1 + h_2) & h_2 & \ddots \\ 0 & h_2 & 2(h_2 + h_3) & h_3 & \ddots \\ & \ddots & \ddots & \ddots & \ddots \\ & & & h_{n-2} & 2 (h_{n-2} + h_{n-1}) & h_{n-1} \\ & & & 0 & 0 & 1 \end{matrix} \right)\]

๊ทธ๋ฆฌ๊ณ 

\[\mathbf{c} = \left( \begin{matrix} c_1 \\ c_2 \\ \vdots \\ c_{n-1} \\ c_n \end{matrix} \right) , \quad \mathbf{b} = \left( \begin{matrix} 0 \\ 3 \left(\frac{\Delta_2}{h_2} - \frac{\Delta_1}{h_1}\right) \\ \vdots \\ 3 \left(\frac{\Delta_{n-1}}{h_{n-1}} - \frac{\Delta_{n-2}}{h_{n-2}}\right) \\ 0 \end{matrix} \right)\]

์ด๋•Œ, $A$ ํ–‰๋ ฌ์— $\left(1, 0, 0\right)$ ํŒŒํŠธ๊ฐ€ ์žˆ๋Š” ์ด์œ ๋Š” Natural Cubic Spline ์ด๊ธฐ ๋•Œ๋ฌธ์—, $c_1 = c_n = 0$์„ ๋งŒ์กฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ–‰๋ ฌ $A$๊ฐ€ ์‚ผ๋Œ€๊ฐ ํ–‰๋ ฌ์ด๊ธฐ ๋•Œ๋ฌธ์—, $A\mathbf{c} = \mathbf{b}$์—๋Š” Unique Solution์ด ์กด์žฌํ•œ๋‹ค. ์‚ผ๋Œ€๊ฐ(tridiagnoal) ํ–‰๋ ฌ์ด๋ผ๋Š” ๊ฒƒ์€ ๋Œ€๊ฐ์„ ๊ณผ ๊ทธ ๋ฐ”๋กœ ์œ„์˜ ๋Œ€๊ฐ์„ ๊ณผ ๊ทธ ๋ฐ”๋กœ ์•„๋ž˜์˜ ๋Œ€๊ฐ์„ ๋งŒ์ด 0์ด ์•„๋‹Œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ–‰๋ ฌ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ผ๋ฐ˜์ ์ธ $n\times n$ ์„ ํ˜• ๋ฐฉ์ •์‹์„ ๊ฐ€์šฐ์Šค ์†Œ๊ฑฐ๋ฒ•์œผ๋กœ ํ’€๋ฉด $O(n^3)$์˜ ๊ณ„์‚ฐ๋Ÿ‰์ด ํ•„์š”ํ•˜์ง€๋งŒ, ์‚ผ๋Œ€๊ฐ ์‹œ์Šคํ…œ์€ โ€œThomas Algorithmโ€์ด๋ผ๋Š” ํŠน๋ณ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด $O(n)$ ์‹œ๊ฐ„ ์•ˆ์— ํ•ด๊ฒฐ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ ๊ณง Natural Cubic Spline์— ๋Œ€ํ•œ ์œ ์ผํ•ด๊ฐ€ ์กด์žฌํ•จ์„ ๋งํ•œ๋‹ค.

Degree of Freedom

์Šคํ”Œ๋ผ์ธ ๊ทผ์‚ฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฒ˜์Œ์—๋Š” $4(n-1)$๊ฐœ์˜ ์ƒ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ๋Š” $c_j$์™ ๊ฐ’๋งŒ ์•Œ, ๋‚˜๋จธ์ง€ $a_j$, $b_j$, $d_j$๋„ ๋ชจ๋‘ ๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๋ฌธ์ œ๋Š” $c_j$๋“ค์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋กœ ํ™˜์› ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ $c_j$์— ๋Œ€ํ•œ ์ผ๋ฐ˜ํ•ญ ๊ด€๊ณ„๋Š” ์ด์›ƒํ•œ ์„ธ ๊ฐœ์˜ $c$ ๊ฐ’๋“ค ๊ฐ„์˜ ์„ ํ˜• ๊ด€๊ณ„๋ฅผ ๋ณด์—ฌ์ฃผ๋ฉฐ,

\[h_j \cdot c_j + 2 \left( h_{j+1} + h_j \right) \cdot c_{j+1} + h_{j+1} \cdot c_{j+2} = 3 \left( \frac{\Delta_{j+1}}{h_{j+1}} - \frac{\Delta_j}{h_j} \right)\]

์ด๋ฅผ ํ†ตํ•ด $c_1, \dots, c_n$์„ ๊ตฌํ•˜๋Š” ์„ ํ˜• ๋ฐฉ์ •์‹ ์‹œ์Šคํ…œ์„ ์œ ๋„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

\[A \mathbf{c} = \mathbf{b}\]

์ด ๊ด€๊ณ„์‹์€ ์‚ผ๋Œ€๊ฐ ์—ฐ๋ฆฝ๋ฐฉ์ •์‹์ด ๋˜๋ฉฐ, ์—ฌ๊ธฐ์—์„œ $A$๋Š” ์‚ผ๋Œ€๊ฐ ํ–‰๋ ฌ๋กœ ๊ณ„์‚ฐ์ด $O(n)$ ๋ฐ–์— ๊ฑธ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ $4(n-1)$๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋Š” $c_1, .., c_n$๊ฐœ ๋ณ€์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ œ๋กœ ํ™˜์› ๋˜์—ˆ์œผ๋ฉฐ, Natural Boundary ์กฐ๊ฑด $c_1 = c_n = 0$์ด ์žˆ๋‹ค๋ฉด, ์ตœ์ข…์ ์œผ๋กœ $(n-2)$์˜ ์ž์œ ๋„๋ฅผ ๊ฐ–๋Š” ์„ ํ˜• ์‹œ์Šคํ…œ์œผ๋กœ ํ™˜์› ๋ฉ๋‹ˆ๋‹ค.

Clamped Cubic Spline

์ฐธ๊ณ ๋กœ Spline์˜ ์œ ์ผ์„ฑ์€ Clamped Spline์—์„œ๋„ ์„ฑ๋ฆฝ ํ•ฉ๋‹ˆ๋‹ค.

๋งบ์Œ๋ง

Spline์€ ์˜ˆ์ „์— โ€œStatistical Data Mining(IMEN472)โ€ ์ˆ˜์—… ๋•Œ ๋ฐฐ์› ๋˜ ๊ณผ๋ชฉ์ธ๊ฒŒ ์ƒ๊ฐ์ด ๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋•Œ๋Š” ์ˆ˜์—… ๋‚ด์šฉ์ด ์ง„์งœ ํ•˜๋‚˜๋„ ๋จธ๋ฆฟ์†์— ๋“ค์–ด์˜ค์ง€ ์•Š์•˜๋Š”๋ฐ ใ…‹ใ…‹ใ…‹ ์ˆ˜์น˜ํ•ด์„๊ฐœ๋ก ์„ ๋จผ์ € ๋“ฃ๊ณ , ๊ทธ ๊ณผ๋ชฉ์„ ๋“ค์—ˆ๋‹ค๋ฉด ๋” ์žฌ๋ฐŒ๊ฒŒ ์ˆ˜์—…์„ ๋“ค์—ˆ์„ ๊ฒƒ ๊ฐ™๋„ค์š”. ๋‹น์‹œ์— ์ € ์ˆ˜์—… ๋“ฃ๊ณ  ๋ง‰ ํšŒ์‚ฌ์— ๋“ค์–ด๊ฐ€์„œ ์ฒซ ์ธํ„ด ์—…๋ฌด๋กœ ๋ฐ›๋Š” ๊ฒƒ์— โ€œCubic Splineโ€์„ ์ ์šฉ ํ–ˆ๋˜ ๊ธฐ์–ต๋„ ์ƒˆ๋ก์ƒˆ๋ก ๋‚ฉ๋‹ˆ๋‹ค ใ…‹ใ…‹ (๊ทธ๋•Œ๋Š” ๋ฉ‹์ธ DS๊ฐ€ ๋˜์–ด ์žˆ์„ ์ค„ ์•Œ์•˜๋Š”๋ฐโ€ฆ)

์•”ํŠผ ๋‹ค์‹œ ๋ด์„œ ๋ฐ˜๊ฐ€์šด ์นœ๊ตฌ์˜€๊ตฌ์š”! ๋‚ด์ผ์ด ์ค‘๊ฐ„๊ณ ์‚ฌ์ธ๋ฐ ์ด์ œ ์ด๊ฑธ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹คโ€ฆ ใ…‹ใ…‹ ํ™”์ดํŒ…!!