Motivation of Pivoting

๊ฐ€์šฐ์Šค ์†Œ๊ฑฐ๋ฒ•๊ณผ, ๊ฐ€์šฐ์Šค-์กฐ๋ฅด๋‹น ๋ฐฉ๋ฒ•์—์„œ ๋Œ€๊ฐํ–‰๋ ฌ์„ ๊ธฐ์ค€์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋ช…๋ฐฑํ•˜๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ทธ๋ž˜์„œ ์ด ๋Œ€๊ฐ ํ–‰๋ ฌ์˜ ์š”์†Œ๋ฅผ Pivot ์ด๋ผ ๋ถ€๋ฅธ๋‹ค. Pivoting ์ด๋ž€, ํ–‰๋ ฌ์ด ์žˆ์„๋•Œ, ์ด Pivot์„ ๊ธฐ์ค€์œผ๋กœ ํ–‰์„ ํŒ๋‹จํ•ด์„œ ๋‘ ํ–‰์„ ๋ฐ”๊ฟ” ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์ด Pivoting์€ ์™œ ํ•„์š”ํ•œ ๊ฒƒ์ผ๊นŒ?

์šฐ๋ฆฌ๋Š” ํ–‰๋ ฌ์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ์žˆ์–ด Computing Method๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ํ˜„์‹ค์˜ ๊ฐ’์„ ๊ทผ์‚ฌํ•ด์„œ ๋งคํ•‘ํ•˜๋Š” ์ปดํ“จํ„ฐ์˜ ํ•œ๊ณ„ ๋•Œ๋ฌธ์—,

์šฐ๋ฆฌ๋Š” Round Off Error ๋ฅผ ํ•„์—ฐ์ ์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด ์—๋Ÿฌ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” Pivoting์„ ํ•œ๋‹ค.

์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.

\\begin{bmatrix} 0.003 & 59.14 \\ 5.291 & -6.130 \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} ;=; \begin{bmatrix} 59.17 \\ 46.78 \\ \end{bmatrix}

์ด ์‹์˜ ์ •ํ™•ํ•œ ๊ฐ’์€,

๊ฐ€์šฐ์Šค ์†Œ๊ฑฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ์œ„ ์‹์„ ๊ณ„์‚ฐํ•ด๋ณด์ž. ์šฐ๋ฆฌ๋Š” ๋Œ€๊ฐ ์š”์†Œ๋ฅผ 1๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, 1ํ–‰ 1์—ด์˜ ๊ฐ’์„, 2ํ–‰ 1์—ด์˜ ๊ฐ’๊ณผ ๊ฐ™๊ฒŒ ๋งŒ๋“ ๋’ค ๋นผ์ค˜์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ

์ด ๊ฐ’์„ 1ํ–‰์— ๊ณฑํ•˜๊ณ  2ํ–‰์„ ๋”ํ•œ ํ–‰์„ 2ํ–‰๊ณผ ๋ฐ”๊ฟ”์ฃผ์ž. ๊ฒฐ๊ณผ ์‹์€,

\\begin{bmatrix} 0.003 & 59.14 \\ 0 & -104300\\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} ;=; \begin{bmatrix} 59.17 \\ -104400 \\ \end{bmatrix}

์ด ๋•Œ ๊ณ„์‚ฐ๋œ ํ•ด๋Š”,

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ˜„์ €ํžˆ ๋‹ค๋ฅธ ํ•ด๊ฐ€ ๋„์ถœ๋œ๋‹ค. ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๋Œ€๊ฐ ์š”์†Œ์˜ ๊ฐ’๊ณผ ๋ฐ‘์˜ ํ–‰์ด ๋น„์œจ์ด ํฐ ๊ฒƒ์„ ํ”ผํ•˜๋ฉด ๋œ๋‹ค!

j๋Š” ํ–‰์˜ ๋ฒˆํ˜ธ๋ฅผ ๋งํ•˜๊ณ , k๋Š” ๋Œ€๊ฐ ์š”์†Œ์˜ ํ–‰๋ฒˆํ˜ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ๊ฐ’์ด 1๋ณด๋‹ค ํด๊ฒฝ์šฐ Round Off ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์œผ๋ฏ€๋กœ ์ด๊ฒƒ์„ ๋ง‰์œผ๋ฉด ๋œ๋‹ค.

Remedy

  1. Partial Pivoting
  2. Scaled Pivoting

Partial Pivoting

๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€, ์ € ๊ฐ’์ด 1๋ณด๋‹ค ํ›จ์”ฌ ํด๊ฒฝ์šฐ ์•„๋ž˜ ํ–‰๊ณผ ์œ„์˜ ํ–‰์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค!

k๋Š” ํ˜„์žฌ ์žˆ๋Š” ํ–‰์„ ์˜๋ฏธํ•œ๋‹ค. n์€ ๋งˆ์ง€๋ง‰ ํ–‰์„ ์˜๋ฏธํ•œ๋‹ค.

๊ทธ ์‚ฌ์ด์— ์žˆ๋Š” i ๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๋ฉด์„œ ๊ฐ ํ–‰์˜ ์š”์†Œ๋“ค์„ ์กฐ์‚ฌํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. ์ด๋•Œ, ํ–‰์˜ index๋ฅผ ์ €์žฅํ•˜๊ณ , ๋งŒ์•ฝ ํ•ด๋‹น ํ–‰์˜ ๋Œ€๊ฐ ์š”์†Œ์˜ ๊ฐ’์ด ๊ฐ€์žฅ ํฌ๋‹ค๋ฉด p = k ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

๋งŒ์•ฝ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด p != k ์ผ ๊ฒƒ์ด๋‹ค. ์ด ๊ฒฝ์šฐ p ํ–‰๊ณผ k ํ–‰์„ Pivoting ํ•œ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํ•„์—ฐ์ ์œผ๋กœ m_jk ๊ฐ’์€ 1๋ณด๋‹ค ์ž‘์•„์ง€๋ฏ€๋กœ Round Off Error ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.

์ ์šฉ

\\begin{bmatrix} 5.291 & -6.130 \\ 0.003 & 59.14 \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} ;=; \begin{bmatrix} 46.78 \\ 59.17 \\ \end{bmatrix} \\begin{bmatrix} 5.291 & -6.130 \\ 0 & 59.14 \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} ;=; \begin{bmatrix} 46.78 \\ 59.14 \\ \end{bmatrix}

Scaled Pivoting

๋งŒ์•ฝ m ๊ฐ’์ด 1์—์„œ ํฌ๊ฒŒ ์ฐจ์ด๊ฐ€ ์—†๋‹ค๋ฉด ์ด ๋ฐฉ๋ฒ•์€ ์‚ฌ์‹ค์˜๋ฏธ๊ฐ€ ์—†๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์—๋Š” ๊ฐ ํ–‰์— ํŠน์ • ๊ฐ™์€ ๊ฐ’์„ ๊ณฑํ•œ๋’ค, ๋‹ต์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๊ฐ€์šฐ์Šค ์†Œ๊ฑฐ๋ฒ•์˜ ํŠน์„ฑ์ƒ, ๋ฐ‘์˜ ๊ฐ’๋ถ€ํ„ฐ ์˜ฌ๋ผ์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ํŠน์ • ํ–‰์˜ ๊ณ„์ˆ˜๋“ค์˜ ํฌ๊ธฐ๊ฐ€ ๊ท ๋“ฑํ•˜๋‹ค๋ฉด ๊ฐ’์˜ ๋ณ€ํ™”๊ฐ€ ํฌ๋‹ค.

๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ํ–‰์˜ ๊ณ„์ˆ˜๋“ค์˜ ๋น„์œจ์ด ํฐ ํ–‰์„ ์•„๋ž˜๋กœ ํ”ผ๋ณดํŒ… ํ•ด์•ผํ•œ๋‹ค.

\\begin{bmatrix} 30 & 591400 \\ 5.291 & -6.130 \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} ;=; \begin{bmatrix} 591700 \\ 46.78 \\ \end{bmatrix} S_1;=;max\[\|30|, |591400|\] ; =;591400\\ S_2;=;max\[\|5.291|, |-6.130|\] ; =;6.130

๋”ฐ๋ผ์„œ 1ํ–‰๊ณผ 2ํ–‰์„ ํ”ผ๋ณดํŒ…ํ•œ๋‹ค.

\\begin{bmatrix} 5.291 & -6.130 \\ 30 & 591400 \\ \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ \end{bmatrix} ;=; \begin{bmatrix} 46.78 \\ 591700 \\ \end{bmatrix}