이전 λͺ‡λ‹¨κ³„μ˜ 값을 μ‘°ν•©ν•΄ 수치적으둜 미방을 ν‘ΈλŠ” 방법에 λŒ€ν•΄. AB 방법과 달리 κ΅¬ν•˜λ €λŠ” λ―Έμ§€μˆ˜κ°€ 방정식에 ν¬ν•¨λœ Implicit λ°©λ²•μž…λ‹ˆλ‹€.

7 minute read

μˆ˜ν•™κ³Ό λ³΅μˆ˜μ „κ³΅μ„ μœ„ν•΄ μ‘Έμ—… λ§ˆμ§€λ§‰ 학기에 β€œμˆ˜μΉ˜ν•΄μ„κ°œλ‘ β€ μˆ˜μ—…μ„ λ“£κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μˆ˜ν•™κ³Ό μ‘Έμ—…μ‹œν—˜λ„ 겸사겸사 μ€€λΉ„ν•  κ²Έ ν™”μ΄νŒ… ν•΄λ΄…μ‹œλ‹€!! 전체 ν¬μŠ€νŠΈλŠ” β€œNumerical Analysisβ€œμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

Multi-step Method

Euler 방식과 RK 방식은 λ‹€μŒ 단계 $u_{n+1}$λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ ν˜„μž¬μ˜ $u_n$와 λ―ΈλΆ„λ°©μ •μ‹μ˜ ν•¨μˆ˜κ°’ $f(t_n, u_n)$을 기반으둜 계산 ν–ˆμŠ΅λ‹ˆλ‹€.

β€œMulti-step Methodβ€œμ€ ν•œ 단계가 μ•„λ‹ˆλΌ μ΄μ „μ˜ μ—¬λŸ¬ 단계 $u_{n-1}, u_{n-2}, \dots$의 값을 ν•¨κ»˜ μ‚¬μš©ν•΄ λ‹€μŒ 단계λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 정확도λ₯Ό 높이고, 이미 κ³„μ‚°ν•œ 값을 μ‚¬μš©ν•΄ κ³„μ‚°λŸ‰μ„ μ€„μž…λ‹ˆλ‹€.

”Adams-Bashborth Methodβ€œμ—μ„œ λͺ…μ‹œμ (Explicit)으둜 Multi-step Methodλ₯Ό μˆ˜ν–‰ν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€! 이번 ν¬μŠ€νŠΈμ—μ„  AB Method을 ν™•μž₯ν•΄ μ•”μ‹œμ (Implicit)으둜 μˆ˜ν–‰ν•΄ μ•ˆμ •μ„±μ„ 높인 β€œAdams-Moulton Method”에 λŒ€ν•΄ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€!

Adams-Moulton Method

AB 방식을 ν™•μž₯ν•œ κΈ°λ²•μœΌλ‘œ, $u_{n+r}$의 값을 κ³„μ‚°ν•˜κΈ° μœ„ν•΄μ„œ $f_{n+r}$의 값을 κ³„μ‚°ν•©λ‹ˆλ‹€! 그런데,

\[f_{n+r} = f(t_{n+r}, {\color{red} u_{n+r}})\]

둜 μš°λ¦¬κ°€ κ΅¬ν•˜κ³  싢은 λ―Έμ§€μˆ˜μΈ $u_{n+r}$이 μš°λ³€μ— ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€! κ·Έλž˜μ„œ, Implicit Form이라고 ν•˜κ³ , 이런 κ²½μš°λŠ” 쀑간 고사 전에 λ°°μ› λ˜ κ³ μ •λ°˜λ³΅λ²•(FPI)μ΄λ‚˜ Newton’s Methodλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

2nd AM Method

\[u_{n+2} = u_{n+1} + \frac{k}{12}(5f_{n+2} + 8 f_{n+1} - f_n)\]

AM 방법을 AB와 λ‹€λ₯΄κ²Œ $u_{n+2}$λ₯Ό κ³„μ‚°ν•˜κΈ° μœ„ν•΄ $f_{n+2}$ 값을 μ‚¬μš©ν•©λ‹ˆλ‹€. 그리고, 곡식을 μœ λ„ν•˜λŠ” κ³Όμ •μ—μ„œλ„ AB 2μ°¨λŠ” 2개 점을 Lagrange λ³΄κ°„ν•˜μ—¬ κ΅¬ν–ˆλ‹€λ©΄, AM 2μ°¨λŠ” 3개 점을 Lagrange λ³΄κ°„ν•˜μ—¬ κ΅¬ν•©λ‹ˆλ‹€.

λ¨Όμ € μ•„λž˜μ˜ 적뢄을 μž‘μ„±ν•©λ‹ˆλ‹€.

\[u_{n+1} = u_n + \int_{t_n}^{t_{n+1}} f(t, u(t)) \, dt\]

μ΄λ•Œ, 적뢄 λ‚΄λΆ€μ˜ $f(t, u(t))$ ν•¨μˆ˜λ₯Ό 보간 ν•©λ‹ˆλ‹€. $f(t, u(t))$λ₯Ό 3κ°€μ§€ μ‹œμ  $t_{n+1}$, $t_n$, $t_{n-1}$의 κ°’μœΌλ‘œ 보간 ν•©λ‹ˆλ‹€.

\[f(t, u(t)) \approx f_{n+1} \cdot L_{n+1}(t) + f_{n} \cdot L_{n}(t) + f_{n-1} \cdot L_{n-1}(t)\]

이걸 잘 μ λΆ„ν•˜λ©΄ λ˜λŠ”λ°β€¦ 직접 ν•΄λ³΄λ‹ˆ 쉽지 μ•Šλ”λΌκ΅¬μš”β€¦ πŸ˜… HW만 μ•„λ‹ˆμ—ˆλ‹€λ©΄ 직접 κ³„μ‚°ν•˜λ €κ³  ν•˜μ§€λ„ μ•Šμ•˜β€¦

κ·Έλž˜μ„œ κ²°κ³Όλ₯Ό λ°”λ‘œ 적으면, 적뢄 뢀뢄이 μ΄λ ‡κ²Œ λ°”λ€λ‹ˆλ‹€.

\[\int_{t_n}^{t_{n+1}} f(t, u(t)) \, dt \approx \frac{k}{12} (5f_{n+2} + 8 f_{n+1} - f_n)\]

μ΅œμ’…μ μœΌλ‘œ 이걸 맨 처음의 근사식에 λŒ€μž…ν•˜λ©΄,

\[u_{n+2} = u_{n+1} + \frac{k}{12}(5f_{n+2} + 8 f_{n+1} - f_n)\]

2μ°¨ AM 근사식을 μ–»μ—ˆμŠ΅λ‹ˆλ‹€! $\blacksquare$

Simple Example

κ°€μž₯ κ°„λ‹¨ν•œ ν˜•νƒœμ˜ 미뢄방정식을 AM λ°©μ‹μœΌλ‘œ ν’€μ–΄λ΄…μ‹œλ‹€.

\[u' = - u, \quad u(0) = 1\]

μ•„μ£Ό 기본적인 미뢄방정식이고 해석적 μ†”λ£¨μ…˜μ€ $u(t) = e^{-t}$ μž…λ‹ˆλ‹€.

AM1 Method

AM1의 식을 적으면,

\[\begin{aligned} u_{n+1} &= u_n + k f_{n+1} \\ &= u_n + k f(u_{n+1}, t_{n+1}) \\ \end{aligned}\]

이제 $u’ = f$λ₯Ό λŒ€μž…ν•˜λ©΄,

\[\begin{aligned} u_{n+1} &= u_n + k u'(u_{n+1}, t_{n+1}) \\ &= u_n - k u_{n+1} \end{aligned}\]

λ”°λΌμ„œ,

\[u_{n+1} = \frac{u_n}{1+k}\]

AM2 Method

AM2의 곡식은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

\[\begin{aligned} u_{n+1} &= u_n + \frac{k}{12} (5 f_{n+1} + 8 f_n - f_{n-1}) \end{aligned}\]

μ΄λ•Œ, $f_i = f(u_i, t_i) = -u_i$μž…λ‹ˆλ‹€.

AM2λŠ” 2개의 μ΄ˆκΈ°κ°’μ΄ ν•„μš”ν•©λ‹ˆλ‹€. ν˜„μž¬ $u(0) = 1$에 λŒ€ν•œ κ²ƒλ§Œ μ•Œκ³  μžˆμœΌλ―€λ‘œ, $u_1$에 λŒ€ν•œ 값이 ν•„μš”ν•©λ‹ˆλ‹€! 이것은 AM1 λ°©λ²•μœΌλ‘œ κ΅¬ν•˜λ©΄ λ©λ‹ˆλ‹€.

\[u_1 = \frac{u_0}{1+k} = \frac{1}{1+k}\]

이제, $u_2$λ₯Ό κ΅¬ν•˜λ©΄

\[\begin{aligned} u_2 &= u_1 + \frac{k}{12} (5 f_2 + 8 f_1 - f_0) \\ &= \frac{1}{1+k} + \frac{k}{12} \left(5 \cdot (-u_2) + 8 \cdot \frac{1}{1+k} - 1\right) \end{aligned}\]

이제, λ―Έμ§€μˆ˜ $u_2$λ₯Ό μ•”μ‹œμ  방법에 μ˜ν•΄ κ³„μ‚°ν•˜λ©΄ λ©λ‹ˆλ‹€!

General Form of AM Method

\[u_{n+r} = u_{n+r - 1} + k \cdot \sum_{j=0}^{\color{red} r} \beta_j f(t_{n+j}, u_{n+j})\]

AB Method vs. AM Method

AB 방식과 AM 방식을 λΉ„κ΅ν•΄λ΄…μ‹œλ‹€!

[곡톡]

λ‘˜λ‹€ λ‹€λ‹¨κ³„λ‘œ μˆ˜ν–‰λ˜λŠ” 수치적 λ―Έλ°© 기법 μž…λ‹ˆλ‹€.

그리고 λ‹€μŒ λ‹¨κ³„μ˜ κ°’ $u_{n+r}$λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄μ„œ 이전에 κ³„μ‚°ν–ˆλ˜ $f_{n+r-i}$ 값을을 μž¬ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€!

[차이]

  • Explicit vs. Implicit
    • ABλŠ” λͺ…μ‹œμ μ΄κ³ ,
    • AM은 μ•”μ‹œμ μΈ 식을 ν’€μ–΄μ•Ό ν•©λ‹ˆλ‹€.
    • μ €λŠ” μ•„λž˜μ˜ μ„±μ§ˆλ‘œ 차이λ₯Ό λ°›μ•„λ“œλ ΈλŠ”λ°
    • AB1λŠ” Forward Euler이고, AM1λŠ” Backward Euler μž…λ‹ˆλ‹€.
  • Fast vs. Slow
    • ABλŠ” 곡식에 λŒ€μž…ν•˜κΈ°λ§Œ ν•˜λ©΄ 되기 λ•Œλ¬Έμ—, μ‰½κ²Œ 계산할 수 있고 κ΅¬ν˜„λ„ μ‰½μŠ΅λ‹ˆλ‹€.
    • AM은 곡식에 λŒ€μž…ν•˜κ³ , λ―Έμ§€μˆ˜μ— λŒ€ν•œ 방정식을 ν’€κ±°λ‚˜, λ°˜λ³΅λ²•(ex. FPI, Newton’s Method)으둜 ν•΄λ₯Ό μ°Ύμ•„μ•Ό ν•˜κΈ° 떄문에 λŠλ¦½λ‹ˆλ‹€.
  • Prediction vs. Correction
    • ABλŠ” Prediction λ‹¨κ³„μ—μ„œ μ‚¬μš©ν•˜κ³ ,
    • AM은 Correction λ‹¨κ³„μ—μ„œ μ‚¬μš©ν•©λ‹ˆλ‹€.
    • 이 뢀뢄은 μ΄μ–΄μ§€λŠ” 포트슀인 β€œPredictor-Corrector Methodβ€œμ—μ„œ μžμ„Ένžˆ λ‹€λ£Ήλ‹ˆλ‹€!

General Form of Multi-step Method

\[\sum_{j=0}^r \alpha_j u_{n + j} = k \sum_{j=0}^{r} \beta_j f(t_{n+j}, u_{n+j})\]

식이 쑰금 λ³΅μž‘ν•΄λ³΄μ΄μ§€λ§Œ, 쒌/μš°λ³€μ„ λ‚˜λˆ μ„œ 생각해보면

  • μ’Œλ³€
    • κ³Όκ±° 및 ν˜„μž¬μ˜ 근사 해듀을 μ„ ν˜• κ²°ν•©ν•œ 것
  • μš°λ³€
    • λŒ€μ‘λ˜λŠ” μ‹œκ°„ μ§€μ μ—μ„œμ˜ ν•¨μˆ˜κ°’μ„ μ„ ν˜• κ²°ν•©ν•œ 것

One-step vs. Multi-step

One-step 방법은 수치적 적근을 μœ„ν•΄ μ΄ˆκΈ°κ°’ $u_0$ ν•˜λ‚˜λ§Œ 있으면 λ©λ‹ˆλ‹€. 이것을 β€œself-staring”이 κ°€λŠ₯ν•˜λ‹€λΌκ³  λ§ν•©λ‹ˆλ‹€. 그런데, Multi-step 방법은 μ—¬λŸ¬ 개의 μ΄ˆκΈ°κ°’μ΄ ν•„μš”ν•©λ‹ˆλ‹€. κ·Έλž˜μ„œ 보톡은 One-step 방법을 λͺ‡ 번 λ¨Όμ € μ μš©ν•΄ 초기 μ‹œμž‘κ°’μ„ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

μ‹œκ°„ 간격을 $k$둜 μž‘λ‹€κ°€ 이것을 좔정값에 따라 더 μž‘μ€ μŠ€ν… $k’ < k$둜 λ³€κ²½ν•˜λ €κ³  ν•©λ‹ˆλ‹€. One-step 방법은 별닀λ₯Έ μ œμ•½ 없이 λ°”λ‘œ 이 간격을 μ‘°μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ°˜λ©΄μ— Multi-step 방법은 μŠ€ν…μ„ λ°”κΏ€ μˆ˜λŠ” μžˆμ§€λ§Œ, 더 μ‘°μ‹¬νžˆ λ°”κΏ”μ•Ό ν•©λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ Multi-step 방법은 이전 값듀이 λ™μΌν•œ μ‹œκ°„ 간격 $k$λ₯Ό μ‚¬μš©ν•΄ 계산 λ˜μ—ˆλ‹€κ³  κ°€μ •ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. κ·Έλž˜μ„œ μ‹œκ°„ 간격을 μ‘°μ •ν•˜λ©΄, κ³„μ‚°μ˜ μ •ν™•μ„±κ³Ό μ•ˆμ •μ„±μ΄ 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€.

맺음말

μ΄μ–΄μ§€λŠ” ν¬μŠ€νŠΈμ—μ„  AB Method와 AM Methodλ₯Ό μ‘°ν•©ν•΄ μ‚¬μš©ν•˜λŠ”, β€œPredictor-Corrector Methodβ€œμ— λŒ€ν•΄ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€!

➑️ Predictor-Corrector Method