올림과 버림

올림과 버림(또는 내림, 절단)은 근삿값을 구하는 방법 중 하나이다. 올림은 올림하려는 수보다 작지 않은 수 중에서 오차의 한계를 만족하는 가장 작은 수를 택한다. 수학적으로는 다음과 같이 표현할 수 있다. x ∈ R {\displaystyle x\in \mathbb {R} } 이고 오차의 한계가 10 k ( k ∈ Z ) {\displaystyle 10^{k}\left(k\in \mathbb {Z} \right)} 일 때, x = n + α ,   n = z × 10 k ( z ∈ Z ) ,   α ∈ [ 0 , 10 k ) {\displaystyle x=n+\alpha ,\ n=z\times 10^{k}\left(z\in \mathbb {Z} \right),\ \alpha \in \left[0,10^{k}\right)} 로 쓸 수 있으면, x {\displaystyle x} 의 올림은 α = 0 {\displaystyle \alpha =0} 일 때 n {\displaystyle n} 이고, α ≠ 0 {\displaystyle \alpha \neq 0} 일 때 n + 10 k {\displaystyle n+10^{k}} 이다. 특히, 오차의 한계가 1( k = 0 {\displaystyle \scriptstyle {k=0}} )인 경우, 즉 소수점 첫째 자리에서 올림하는 경우 x {\displaystyle x} 의 올림을 ⌈ x ⌉ {\displaystyle \left\lceil x\right\rceil } 라고도 쓰며, 이것은 x {\displaystyle x} 보다 작지 않은 최소 정수를 찾는 것과 같다. 오차의 한계가 10이 되도록 하는 것을 "일의 자리에서 올림", 오차의 한계가 100이 되도록 하는 것을 "십의 자리에서 올림" 같은 식으로 말한다. 오차의 한계가 1이 되도록 하는 것을 "소수점 (이하) 첫째 자리에서 올림", 오차의 한계가 0.1이 되도록 하는 것을 "소수점 (이하) 둘째 자리에서 올림" 같은 식으로 말한다. 73을 일의 자리에서 올림하면 80이 되고(73=70+3 → 70+10=80), 십의 자리에서 올림하면 100이 된다(73=0+73 → 0+100=100). 51.6137을 소수점 셋째 자리에서 올림하면 51.62이 되고(51.6137=51.61+0.0037 → 51.61+0.01=51.62), 일의 자리에서 올림하면 60이 된다(51.6137=50+1.6137 → 50+10=60). 70을 일의 자리에서 올림하면 70이 된다(70=70+0 → 70). 701을 십의 자리에서 올림하면 800이 된다(701=700+1 → 700+100=800). -211을 일의 자리에서 올림하면 -210이 된다(-211=-220+9 → -220+10=-210). -4.331을 소수점 첫째 자리에서 올림하면 -4가 되고(-4.331=-5+0.669 → -5+1=-4), 소수점 둘째 자리에서 올림하면 -4.3이 된다(-4.331=-4.4+0.069 → -4.4+0.1=-4.3). 버림은 버림하려는 수보다 크지 않은 수 중에서 오차의 한계를 만족하는 가장 큰 수를 택한다. 수학적으로는 다음과 같이 표현할 수 있다. x ∈ R {\displaystyle x\in \mathbb {R} } 이고 오차의 한계가 10 k ( k ∈ Z ) {\displaystyle 10^{k}\left(k\in \mathbb {Z} \right)} 일 때, x = n + α ,   n = z × 10 k ( z ∈ Z ) ,   α ∈ [ 0 , 10 k ) {\displaystyle x=n+\alpha ,\ n=z\times 10^{k}\left(z\in \mathbb {Z} \right),\ \alpha \in \left[0,10^{k}\right)} 로 쓸 수 있으면, x {\displaystyle x} 의 버림은 n {\displaystyle n} 이다. 특히, 오차의 한계가 1( k = 0 {\displaystyle \scriptstyle {k=0}} )인 경우, 즉 소수점 첫째 자리에서 버림하는 경우를 정수부분을 찾는다고 말한다. 오차의 한계가 10이 되도록 하는 것을 "일의 자리에서 버림", 오차의 한계가 100이 되도록 하는 것을 "십의 자리에서 버림" 같은 식으로 말한다. 오차의 한계가 1이 되도록 하는 것을 "소수점 (이하) 첫째 자리에서 버림", 오차의 한계가 0.1이 되도록 하는 것을 "소수점 (이하) 둘째 자리에서 버림" 같은 식으로 말한다. 13.141592를 일의 자리에서 버림하면 10이다(13.141592=10+3.141592 → 10). 5.6341432를 소수점 넷째 자리에서 버림하면 5.634이다(5.6341432=5.634+0.0001432 → 5.634). 32.438191288을 소수점 다섯째 자리에서 버림하면 32.4381이다(2.438191288=32.4381+0.000091288). 9265358을 백의 자리에서 버림하면 9265000이다9265358=9265000+358 → 9265000). -333.3을 일의 자리에서 버림하면 -340이다(-333.3=-340+6.7 → -340). -4.14를 소수점 첫째 자리에서 버림하면 -5이다(-4.14=-5+0.86 → -5). 실수 x를 부동소수점 기계 숫자로 나타낸 것을 fl(x)라고 할 때, 절단 오차를 구하는 과정은 다음과 같다. 우선 십진수 양의 실수 x는 정규화된 형태로 다음으로 나타낼 수 있다. x = ( 0. b 1 b 2 ⋯ b k b k + 1 ⋯ ) 10 × 10 e {\displaystyle x=(0.b_{1}b_{2}\cdots b_{k}b_{k+1}\cdots )_{10}\times 10^{e}} k자리로 절단하는 경우의 상대오차를 구한다면 | x − f l ( x ) x | = | ( 0. b 1 b 2 ⋯ b k b k + 1 ⋯ ) × 10 n − ( 0. b 1 b 2 ⋯ b k ) × 10 n ( 0. b 1 b 2 ⋯ b k b k + 1 ⋯ ) × 10 n | = | 0. b k + 1 b k + 2 b k + 3 ⋯ 0. b 1 b 2 ⋯ b k b k + 1 × 10 − k | ≤ 1 0.1 × 10 − k = 10 − k + 1 {\displaystyle {\begin{matrix}\left|{\frac {x-fl(x)}{x}}\right|&=&\left|{\frac {(0.b_{1}b_{2}\cdots b_{k}b_{k+1}\cdots )\times 10^{n}-(0.b_{1}b_{2}\cdots b_{k})\times 10^{n}}{(0.b_{1}b_{2}\cdots b_{k}b_{k+1}\cdots )\times 10^{n}}}\right|\\&=&\left|{\frac {0.b_{k+1}b_{k+2}b_{k+3}\cdots }{0.b_{1}b_{2}\cdots b_{k}b_{k+1}}}\times 10^{-k}\right|\\&\leq &{\frac {1}{0.1}}\times 10^{-k}=10^{-k+1}\end{matrix}}} 따라서 절단의 상대오차는 | x − f l ( x ) x | ≤ 10 − k + 1 {\displaystyle \left|{\frac {x-fl(x)}{x}}\right|\leq 10^{-k+1}} 이다. Abdelwahab Kharab; Ronald B. Guenther (2013). 《An Introduction to Numerical Methods A MATLAB Approach》 [이공학도를 위한 수치해석]. 학산미디어. ISBN 978-89-966211-8-8.  바닥 함수와 천장 함수 반올림