One-step Method๋ฅผ ๋ถ„ํ• ํ•ด ์ ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•!

3 minute read

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

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

๋ฏธ๋ถ„๋ฐฉ์ •์‹์˜ ์ˆ˜์น˜์ ์œผ๋กœ ํ’€ ๋•Œ, ๋†’์€ ์ •ํ™•๋„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ ๊ณ ์ฐจ ๋ฏธ๋ถ„์„ ํฌํ•จํ•˜๋Š” Taylor Method๋ฅผ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณต์žกํ•œ ์ „๋ฏธ๋ถ„์„ ๊ณ„์‚ฐํ•ด ๊ณ ์ฐจ ๋ฏธ๋ถ„์„ ์–ป์–ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด โ€œRunge-Kutta Methodโ€ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 1์ฐจ ๋ฏธ๋ถ„๊ฐ’๋งŒ ์‚ฌ์šฉํ•˜๋Š”, One-step ๋ฐฉ์‹์ด์ง€๋งŒ 1์ฐจ ๋ฏธ๋ถ„๊ฐ’์„ ์—ฌ๋Ÿฌ๊ฐœ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๊ฒƒ์— ๊ฐ€์ค‘์น˜๋ฅผ ๋ถ€์—ฌํ•ด ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋†’์€ ์ •ํ™•๋„๋ฅผ ์–ป๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Improved Euler Method

\[\begin{aligned} {\color{red} k_1} &= f(t_n, u_n) \\ k_2 &= f(t_n + h, u_n + h \cdot {\color{red} k_1}) \\ u_{n+1} &= u_n + \frac{h}{2} \left({\color{red} k_1} + k_2 \right) \end{aligned}\]

๊ธฐ์กด์˜ ์˜ค์ผ๋Ÿฌ ๋ฐฉ์‹์€ ํ˜„์žฌ ์ง€์ ($t_n, u_n$)์—์„œ์˜ ๊ธฐ์šธ๊ธฐ์ธ $k_1$๋งŒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์„ ๋œ ์˜ค์ผ๋Ÿฌ ๋ฐฉ์‹์€ ํ˜„์žฌ ์ง€์ ์—์„œ์˜ ๊ธฐ์šธ๊ธฐ์™€ ํ•จ๊ป˜, ์ด๋™ํ•œ ์ง€์ ์—์„œ์˜ ๊ธฐ์šธ๊ธฐ $k_2$๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. $k_2$๋ฅผ ๊ตฌํ•  ๋•Œ, $k_1$์—์„œ ๊ตฌํ•œ ๊ฐ’์„ ํ™œ์šฉํ•ด ์ด๋™ํ•ด์•ผ ํ•จ์— ์œ ์˜ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‘ ๊ธฐ์šธ๊ธฐ ๊ฐ’์˜ ํ‰๊ท ์„ ๊ตฌํ•˜๊ณ , ์ด๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์Œ ์Šคํ…์œผ๋กœ ๋‚˜์•„๊ฐ‘๋‹ˆ๋‹ค!

์ด ๋ฐฉ์‹์„ โ€œ๊ฐœ์„ ๋œ ์˜ค์ผ๋Ÿฌ ๋ฐฉ์‹โ€ ๋˜๋Š” โ€œHeunโ€™s Methodโ€œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ One-step Method๋ฅผ 2๋ฒˆ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ๋ฒˆ์˜ One-step Method์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์•„์„œ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด์—์„œ ์ถœ๋ฐœํ•œ๊ฒŒ Runge-Kutta ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค!

Runge-Kutta Method

๋ฐ”๋กœ ์‹๋ถ€ํ„ฐ ์‚ดํŽด๋ด…์‹œ๋‹ค!

\[\begin{aligned} k_1 &= f(t_n, u_n) \\ k_2 &= f(t_n + \frac{h}{2}, u_n + \frac{h}{2} k_1) \\ u_{n+1} &= u_n + h \cdot k_2 \end{aligned}\]

์ด๊ฒƒ์„ ์˜ค์ผ๋Ÿฌ ๋ฐฉ์‹์˜ ์ ˆ๋ฐ˜๋งŒ ๊ฐ€์„œ ๊ธฐ์šธ๊ธฐ $k_2$๋ฅผ ์–ป๊ณ  ๊ทธ๊ฑธ๋กœ ์ „์ฒด ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ โ€œ2์ฐจ RK ๋ฐฉ์‹โ€ ๋˜๋Š” โ€œRK2 ๋ฐฉ์‹โ€์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์•ž์—์„œ ์‚ดํŽด๋ณธ โ€œHeunโ€™s Methodโ€์˜ $k_2$์—์„œ $h/2$๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๋Š”๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค!


\[\begin{aligned} k_1 &= f(t_n, u_n) \\ k_2 &= f\left(t_n + \frac{h}{2}, u_n + \frac{h}{2} k_1\right) \\ k_3 &= f\left(t_n + h, u_n - h k_1 + 2h k_2\right) \\ u_{n+1} &= u_n + \frac{h}{6} \left( k_1 + 4 k_2 + k_3 \right) \end{aligned}\]

KR3๋Š” 3๋ฒˆ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋ฅผ ์ข…ํ•ฉํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


\[\begin{aligned} k_1 &= f(t_n, u_n) \\ k_2 &= f\left(t_n + \frac{h}{2}, u_n + \frac{h}{2} \cdot k_1\right) \\ k_3 &= f\left(t_n + \frac{h}{2}, u_n + \frac{h}{2} \cdot k_2\right) \\ k_4 &= f\left(t_n + h, u_n + h \cdot k_3\right) \\ u_{n+1} &= u_n + \frac{h}{6} \left( k_1 + 2 k_2 + 2 k_3 + k_4 \right) \end{aligned}\]

๋งˆ์ง€๋ง‰์œผ๋กœ 4๋ฒˆ์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” RK4 ๋ฐฉ์‹ ์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต RK4๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋งบ์Œ๋ง

์ด์–ด์ง€๋Š” ํฌ์ŠคํŠธ์—์„  $u_{n+1}$๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด $u_{n}$ ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์ „์˜ $u_{n-1}$, $u_{n-2}$๋ฅผ ์‚ฌ์šฉํ•ด ๋ฏธ๋ถ„๋ฐฉ์ •์‹์„ ๊ทผ์‚ฌํ•˜๋Š” โ€œMulti-step Methodโ€œ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค!

๊ทธ๋ฆฌ๊ณ  Multi-step Method์˜ ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋ฒ•์ธ โ€œAdams-Bashforth Methodโ€œ์™€ โ€œAdams-Moulton Methodโ€œ์— ๋Œ€ํ•ด ์‚ดํŽด๋ด…๋‹ˆ๋‹ค!

โžก๏ธ Adams-Bashforth Method