유효숫자

최근 수정 시각: (5년 전)
목차
1. 설명2. 유효숫자를 판단하는 방법
2.1. 유효숫자인 경우2.2. 유효숫자가 아닌 경우2.3. 과학적 기수법
3. 끝수 처리4. 유효숫자의 연산
4.1. 덧셈, 뺄셈4.2. 곱셈, 나눗셈4.3. 일반적인 함수 및 연산4.4. 복합 연산


; significant figures

1. 설명 [편집]

측정값은 측정에 사용된 도구의 측정 분해능(measurement resolution) 정도에 따라 각기 다른 자릿수로 나타난다. 똑같은 부피를 재더라도 파이펫의 최소 단위가 10mL\rm10\,mL인 것과 0.1mL\rm0.1\,mL인 것은 최소 눈금을 읽는 방식[1]이 다르기 때문에 자릿수에 차이가 날 수 밖에 없다. 유효숫자는 얻어진 측정값의 숫자 중 어디까지가 의미있는지를 나타내는 척도이며, 비단 이공계 관련 분야뿐만 아니라 측정이 필수적인 모든 분야에서 반드시 숙지해야하는 개념이다.

유효숫자에서 불확실성(uncertainty)을 나타내는 숫자는 맨 마지막 한 자릿수의 숫자이기 때문에 그 앞까지는 확실한 측정값이라는 것을 보장한다는 정보가 담겨있다. 이를테면 원주율을 유효숫자 5자리인 3.14163.1416으로 나타냈을 때 3.1413.141까지가 확실한 값이고 소수 넷째 자리는 3.141553.141653.14155\sim3.14165[2]의 범위의 값을 처리한 불확실한 값임을 의미한다.
단 이는 무작위 오차(ramdom error)와는 다른 개념이다. 무작위 오차는 반복된 실험을 통해 얻어진 측정값들을 통계적으로 처리한 결과 필연적으로 생길 수 밖에 없는 측정값의 한계폭을 의미하고 표기로도 a±ba\pm b[3]와 같이 나타낸다. 반면 유효숫자는 이러한 통계적인 의미를 내포하고 있지 않으며 오로지 측정을 한 번 하는 데에 사용한 도구의 분해능에 대한 정보만 제공할 뿐이다.

2. 유효숫자를 판단하는 방법 [편집]

2.1. 유효숫자인 경우 [편집]

우선, 측정값에 한하여[4] 0\bf0이 아닌 숫자로 시작하는 자리부터 유효숫자이며, 소수점 아래에서 마지막에 등장하는 0\bf0 역시 유효숫자이고, 연산에서 아주 중요한 요소로 작용하기 때문에(후술) 함부로 생략해서는 안 된다. 예를 들어 어떤 용기의 부피가 '1.000L\rm1.000\,L'라고 측정되었을 때, 이를 '1L\rm1\,L'라고 쓰면 틀린다. 1.000L\rm1.000\,L는 최소 단위가 0.01L\rm0.01\,L인 용기를 써서 0.001L\rm0.001\,L 단위까지 눈대중으로 읽은 결과로, 최소 소수 둘째 자리는 00인 게 확실하다는 뜻을 내포하고 있기 때문이다. 물론 유효숫자가 아니라면 소수점 아래 마지막에 오는 00을 생략한다는 일반적인 약속을 적용해도 무관하다.
한편, 측정값이 아니고 개념적으로 배수 관계가 명확하다 하더라도 그 수치가 터무니 없이 커서 굳이 전체 자릿수를 다 알 필요가 없는 경우 과학적 기수법으로 나타내기도 하는데 이 때에는 유효숫자로 간주해서 계산한다. 컴퓨터의 용량 등에 쓰이는 단위인 TiB\rm TiB[5]에서 Ti=×240\rm Ti = \times2^{40}으로 명확한 계수의 배수이지만 이를 1.0995×10121.0995\times10^{12}로 나타냈다면 유효숫자이다.[6]

아래의 예시에서 수레국화색 숫자가 모두 유효숫자에 해당한다.
  • 황금비 φ\varphi의 근삿값 1.6180{\color{cornflowerblue}1.6180} (유효숫자 5자리)
  • 기체상수 R0.082atm ⁣ ⁣L/(mol ⁣ ⁣K)R \approx\rm0.0{\color{cornflowerblue}82}\,atm\!\cdot\!L/(mol\!\cdot\!K) (유효숫자 2자리)
  • Kr\rm Kr전기 음성도 3.00{\color{cornflowerblue}3.00} (유효숫자 3자리)
  • VSMOW[7]어는점 0.000° ⁣C\rm{\color{cornflowerblue}0.000}\,\degree\!C (유효숫자 4자리)
  • VSMOW의 끓는점 100° ⁣C\rm{\color{cornflowerblue}10\overline0}\,\degree\!C (유효숫자 3자리)
  • 태양의 표면 온도 5500° ⁣C\rm{\color{cornflowerblue}5\underline5}00\,\degree\!C (유효숫자 2자리)
유리수의 소수 표현 중에 순환마디의 위나 아래에 줄을 긋는 경우가 있고(해당 문서 참조) 후자 2개처럼 유효숫자 마지막 자릿수에 줄을 긋는 표기는 혼동을 야기할 수 있기 때문에 일반적이지 않으며, 보통은 줄 없이 그냥 55005500, 100100처럼 나타낸다. 문제는 이렇게 쓰면 소수점 위에서 00으로 끝나고 있기 때문에 별도의 언급이 없으면 어느 00까지가 유효숫자인지 판단할 수 없다. 유효숫자의 자릿수와 정수의 자릿수가 같을 때, 이를테면 5500.5500{\color{cornflowerblue}.}, 100.100{\color{cornflowerblue}.}처럼 소수점을 찍어서 유효숫자를 명시할 순 있으나[8] 유효숫자의 자릿수가 정수 자릿수보다 작은 경우엔 답이 없다. 이를 보완하기 위해 나온 것이 바로 과학적 기수법(scientific notation)이다.

2.2. 유효숫자가 아닌 경우 [편집]

'~개', '~회' '~배' 등과 같이 개념적으로 계수가 명확한 것, 즉 이산적인(discrete) 값은 유효숫자가 아니다. 이를테면 물 분자의 분자량을 계산할 때, 산소 원자의 개수만큼 곱해주는 22는 유효숫자가 아니다. 꼭 정수만 해당되는 건 아니고, 수소의 연소로 인한 물의 생성 엔탈피는 산소 기체에 12\dfrac12만큼의 계수가 곱해지는데 이는 반응한 산소와 생성된 물의 입자수 비가 1:21:2라는 관계에서 나온 것이기 때문에 산소의 물질량이나 반응한 기체의 부피 등을 구할 때 곱해지는 12\dfrac12 혹은 0.50.5는 유효숫자가 아니다. 이 밖에도 자릿수가 약속되어있지 않은 수학 상수들(π\pi, ee, 2\sqrt2 따위)[9]도 유효숫자가 아닌 것으로 간주하며 이들은 무한소수이기 때문에 유효숫자라 하더라도 자릿수가 무한개다. 또한 유효숫자는 실수로서의 개념이기 때문에 복소수의 허수단위 ii사원수의 허수 단위 ii, jj, kk등에서는 굳이 따지지 않는다. 단, 이들 단위에 곱해진 계수에 대해서는 경우에 따라 유효숫자로 간주할 수도 있다.

2.3. 과학적 기수법 [편집]

측정값을 유효숫자 s(1s<10)s\,(1\le s<10)1010을 밑으로 하는 정수 nn의 거듭제곱을 이용하여 s×10ns\times10^n의 꼴로 나타내는 방법. 계산기에서는 10n=en10^n = {\sf e}n 혹은 En {\sf E}n으로 표기하기도 한다. 앞선 예시들을 과학적 기수법으로 나타내면 다음과 같다.
  • 1.61801.6180
  • 8.2×102atm ⁣ ⁣L/(mol ⁣ ⁣K)\rm8.2\times10^{-2}\,atm\!\cdot\!L/(mol\!\cdot\!K)
  • 3.003.00
  • 0.000° ⁣C\rm0.000\,\degree\!C
  • 5.5×103° ⁣C\rm5.5\times10^3\,\degree\!C
  • 1.00×102° ⁣C\rm1.00\times10^2\,\degree\!C
유효숫자의 자릿수와 규모(scale)를 한눈에 알아볼 수 있다는 점에서 아주 유용한 표기이지만, 모든 측정값의 표기에 이 방식을 도입하면 공간을 매우 낭비하게 된다는 단점이 있다. 또한 측정값을 이용해서 사칙연산을 할 경우, 과학적 기수법은 곱셈과 나눗셈에서 매우 효율적이지만, 덧셈과 뺄셈에서는 거듭제곱을 맞춰줘야 하기 때문에 다소 번거로워진다는 문제점도 안고 있다.

3. 끝수 처리 [편집]

국제표준화기구(ISO)에서는 ISO 80000-1에서 소위 '오사오입(五捨五入)'이라 불리는 최근접 짝수 반올림(Round to nearest even)[10]을 권장한다. 끝수가 040\sim4, 696\sim9일 때에는 기존 반올림과 똑같고, 55일 때에는 처리한 결과의 마지막 자릿수가 짝수가 되게 하는 방식이다. 즉, 5\bf5 앞이 홀수면 올리고 짝수면 버린다. 예를 들면 log107=0.845098040\log_{10}7 = 0.845\,098\,040\cdots\cdots을 유효숫자 2자리로 처리하면 기존 반올림 0.850.85와는 달리 0.840.84가 되고 γ=0.577215664\gamma = 0.577\,215\,664\cdots\cdots를 유효숫자 5자리로 처리하면 반올림의 경우와 똑같은 0.577220.577\,22가 된다.

4. 유효숫자의 연산 [편집]

전술한대로 유효숫자는 불확실성을 내포하고 있기 때문에, 연산 결과 불확실성이 줄어들거나 늘어나서는 안된다는 대원칙을 토대로 유효숫자를 처리하는 규칙이 약속되어있다. 각 규칙의 설명은 어디까지나 정성적인 수준으로 엄밀하지 않으며 구체적인 수치로 따져보면 예외가 존재하지만 편의상 그렇게 정해져 있다고 생각하면 된다. 붉은 글씨는 각 유효숫자 및 계산 과정에서 불확실한 숫자임을 나타낸다.

4.1. 덧셈, 뺄셈 [편집]

불확실한 숫자는 맨 마지막 자릿수의 숫자이므로, 그 자릿수보다 아래에 있는 숫자는 모두 불확실하다고 볼 수 있다. 이를테면 1.4141.41{\color{red}4}는 소수 셋째 자리부터 불확실한 숫자이고 0.30100.301{\color{red}0}은 소수 넷째 자리부터 불확실한 숫자이다. 이 둘을 더하면 1.71501.71{\color{red}50}이 되며 불확실한 숫자가 2자리로 늘어나므로 불확실성 불변의 원칙에 따라 1자리가 되도록 끝수 처리를 해야한다. 위 결과에서는 소수 셋째 자리부터 불확실한 수치이므로 1.7151.71{\color{red}5}로 정리한다.[11]
이를 일반화하면, 덧셈 및 뺄셈에서는 소수점 아래 자릿수가 가장 적은 쪽에 맞추면 된다는 것을 알 수 있다.
한편, 소수점 아래 자리가 없는 정수의 경우, 값을 과학적 기수법으로 나타내면 소수점 아래 자리를 포함하는 수치로 나타낼 수 있고, 덧셈 및 뺄셈을 연산하려면 모든 수의 자릿수가 같아야하므로, 다른 수치들도 똑같은 거듭제곱으로 통일시켜서 소수점을 이동시켜주면 된다. 이를 정리하면 덧셈, 뺄셈에서의 연산 규칙은 다음과 같다.
지수가 가장 큰 쪽으로 거듭제곱을 통일한 과학적 기수법에서 유효숫자의 소수점 아래 자릿수가 가장 적은 쪽에 맞춘다.
  • 3.1415×103+2.71828×1013.1418×1033.141\,5\times10^3 + 2.718\,28\times10^{-1} \approx 3.141\,8\times10^3
    지수가 큰 쪽으로 거듭제곱을 통일하면 (3.1415+0.000271828)×103(3.141\,{\color{red}5} + 0.000\,271\,82{\color{red}8})\times10^3으로 나타낼 수 있고 소수점 아래 자릿수를 비교해보면 전자는 4자리, 후자는 9자리이므로 결과값은 소수 넷째 자리까지 정리한다. 이를 도식화하면 다음과 같다.
    +3.1415×1030.000271828×1033.141771828×1033.1415×103+2.71828×1013.1418×103\begin{matrix} \begin{aligned} \\ + \end{aligned} & \begin{aligned} 3&.141\,{\color{red}5} && \times10^3 \\ 0&.000\,271\,82{\color{red}8} && \times10^3 \end{aligned} \\ \hline & \begin{aligned} 3&.141\,{\color{red}771\,828} && \times10^3 \end{aligned} \end{matrix} \\ \therefore3.141\,{\color{red}5}\times10^3 + 2.718\,2{\color{red}8}\times10^{-1} \approx 3.141\,{\color{red}8}\times10^3

4.2. 곱셈, 나눗셈 [편집]

불확실한 수치가 곱해지면 다른 한쪽이 확실한 수치여도 결과적으로 불확실한 수치가 포함된다는 것은 납득할 수 있을 것이다. 이때, 어느 자리까지 불확실한 수치로 봐야하는지에 대한 문제가 생긴다. 이를테면 유효숫자인 3.63.{\color{red}6}22배하는 연산 3.6×23.{\color{red}6}\times2를 생각해보자. 일단 결과는 7.27.2인데 여기서 일의 자리의 77은 확실한 수치 3×23\times2에 불확실한 수치와의 곱 0.6×2=1.20.{\color{red}6}\times2 = {\color{red}1.2}1\color{red}1이 더해진 값이니까 7.27.2 전체가 불확실한 값이 되는 것일까? 얼핏 합당한 추론같아 보이지만, 곱셈 연산을 거듭할수록 불확실한 자릿수가 점점 늘어나 결과적으로 유효숫자의 자릿수가 줄어드는 문제가 있는 데다가(불확실성 불변의 원칙 위배), 두 수의 곱이 1010미만이면 이러한 특징이 나타나지 않아 모든 곱셈 연산에 일괄적으로 적용할 수 없다는 문제도 있다. 따라서 이러한 판단은 적절치 않다.
본디 곱셈이란 같은 것을 여러번 더하는 덧셈 연산과 등가이다. 즉, 3.6×2=3.6+3.63.{\color{red}6}\times2 = 3.{\color{red}6}+3.{\color{red}6}이다. 덧셈, 뺄셈의 연산 규칙을 적용하면 소수 첫째 자리가 불확실한 값들의 덧셈이므로 결과 역시 소수 첫째 자리까지 정리하며 결과적으로 7.27.{\color{red}2}, 즉 여전히 마지막 자릿수만 불확실한 수치라는 것을 알 수 있다. 만약 2\color{red}2도 유효숫자라면 3×2=63\times{\color{red}2} = {\color{red}6} 역시 불확실한 수치이기 때문에 6+1=7{\color{red}6} + 1 = {\color{red}7}도 불확실한 수치가 되며, 그 결과 7.27{\color{red}7.2} \approx \color{red}7로 정리한다.
이 과정을 잘 살펴보면, 전자는 유효숫자 2자리가 그대로 유효숫자 2자리가 되는 연산이고, 후자는 유효숫자 2자리와 유효숫자 1자리가 곱해져서 유효숫자 1자리가 되는 연산임을 알 수 있다. 즉 결과값은 곱하는 유효숫자의 자릿수가 가장 적은 쪽에 맞춰진다.
나눗셈은 역수의 곱셈 연산과 같으므로 이를 정리하면 곱셈, 나눗셈에서의 연산 규칙은 다음과 같다.
유효숫자의 자릿수가 가장 적은 쪽에 맞춘다.
  • 1.4×0.69310.971.4\times0.6931 \approx 0.97
    유효숫자 2자리와 유효숫자 4자리의 곱이므로 결과값은 유효숫자 2자리로 정리한다. 마찬가지로 도식화하면 다음과 같이 된다.
    ×1.40.6931  +0.000140.00420.1260.840.97034\begin{matrix} \begin{aligned} \\ \times \end{aligned} & \begin{aligned} 1&.{\color{red}4} \\ 0&.693\,{\color{red}1}~~ \end{aligned} \\ \hline \begin{aligned} \\ \\ \\ + \end{aligned} & \begin{aligned} 0&.000\,{\color{red}14} \\ 0&.004\,{\color{red}2} \\ 0&.12{\color{red}6} \\ 0&.8{\color{red}4} \end{aligned} \\ \hline & 0.9{\color{red}70\,34}\end{matrix}
    혹은
    ×0.6931  1.4  +0.277240.69310.970341.4×0.69310.97\begin{matrix} \begin{aligned} \\ \times \end{aligned} & \begin{aligned} 0&.693\,{\color{red}1}~~ \\ 1&.{\color{red}4}~~ \end{aligned} \\ \hline \begin{aligned} \\ + \end{aligned} & \begin{aligned} 0&.2{\color{red}77\,24} \\ 0&.693\,{\color{red}1} \end{aligned} \\ \hline & 0.9{\color{red}70\,34}\end{matrix} \\ \therefore 1.{\color{red}4}\times0.693{\color{red}1} \approx 0.9\color{red}7

4.3. 일반적인 함수 및 연산 [편집]

지수, 로그, 삼각함수 등 일반적인 함수에 대한 유효숫자 계산법은 교과과정에서 나오지 않는데, 연산에 의해 변하는 불확실성을 정확히 설명하기 위해서는 미분이 필요하기 때문이다.

xx의 유효숫자가 소수점 이하 nn자리까지 있다는 이야기는, 값 xx와 반올림한 근사값 aa에 대해
xa<0.5×10n|x - a| < 0.5 \times 10^{-n}
가 성립함을 의미한다. 한편 미분계수의 성질을 생각하면 f(x)f(a)|f(x) - f(a)|xaf(x)|x-a||f'(x)|에 근접하므로, f(x)f(x)의 유효숫자가 소수점 이하 mm자리까지 있으려면
xaf(x)<0.5×10m|x-a||f'(x)| < 0.5 \times 10^{-m}
이 만족되어야 한다. xa|x-a|0.5×10n0.5 \times 10^{-n} 정도의 크기를 가질 수 있으므로,
f(x)<10(mn)mnlog10f(x)|f'(x)| < 10^{-(m-n)} \Leftrightarrow m-n \le - \log_{10}|f'(x)|
이를 정리하면 다음과 같다.
미분계수의 상용로그값을 정수 단위로 올림해서 나온 숫자만큼 유효숫자의 마지막 위치가 변한다.
만약 유효숫자의 개수를 비교하고 싶으면, xx의 유효숫자의 개수는 log10x10n\log_{10}\dfrac x{10^{-n}}을 내림한 정수로 생각할 수 있기 때문에, 다음의 조건을 생각할 수 있다.
xf(x)f(x)\left|\dfrac{x f'(x)}{f(x)}\right|의 상용로그값을 정수 단위로 올림해서 나온 숫자만큼 유효숫자의 개수가 줄어든다.
변량 xf(x)f(x)\left|\dfrac{x f'(x)}{f(x)}\right|수치해석 등에서 등장하는 조건수(conditional number)라는 개념의 일종이다. 이항연산 및 다항연산에 대해서도 비슷하게 조건수를 생각할 수 있고, 위에 이야기한 덧셈, 곱셈에서의 유효숫자 규칙도 엄밀히 생각하면 f(x,y)f(x,\,y)의 불확실성을 다변수 미분의 성질을 이용해 xaxf+ybyf|x-a| \partial_x f + |y-b| \partial_y f로 간주하는 것으로 해석하는 것이 맞는다.

4.4. 복합 연산 [편집]

기본적으로 사칙연산의 순서에 따라 계산해나간다. 단, 유효숫자의 처리 규칙이 연산 종류에 따라 판이하게 다르기 때문에(특히 덧셈/뺄셈이 다른 연산 규칙과 두드러지게 다르다.) 연산 종류끼리 중간 과정을 계산해서 각각의 유효숫자 혹은 소수점 아래 자릿수를 확인해야한다. 당연한 사항이지만 유효숫자 처리는 연산 맨 마지막에 하는 것이 원칙이다.
[1] 참고로 눈금을 읽을 때에는 최소 눈금의 1/101/10단위까지 눈대중으로 읽는 것이 측정의 기본이다.[2] 반올림 체계에서는 3.141643.14164가 상한선이 되겠지만 ISO에서 권장하는 최근접 짝수 반올림 체계에서는 3.141653.14165까지가 해당된다. 자세한 것은 끝수 처리 문단 참고.[3] 실제 측정값의 자릿수가 길 경우 괄호를 써서 나타내기도 한다. 이를테면 미세구조상수 α\alphaα=0.0072973525693±0.0000000000011\alpha = 0.007\,297\,352\,569\,3\pm0.000\,000\,000\,001\,1인데 이게 공간을 많이 차지하기 때문에 주로 α=0.0072973525693(11)\alpha = 0.007\,297\,352\,569\,3(1\,1)로 나타낸다.[4] 개념적으로 계수 관계가 명확하지 않은 것, 즉 연속적인(continuous) 값을 말한다.[5] Ti\rm Ti는 '테비'(tebi)라고 읽는다. 보통 i\rm i를 생략한 TB\rm TB(테라바이트)로 많이 나타내는데 엄밀히는 틀린 표기이다. T=×10004=×1012\rm T = \times1000^4 = \times10^{12}를 의미하는 SI 접두어이기 때문.[6] 이와 비슷하게 mol\rm mol은 개념상 입자의 개수를 나타내는 무차원의 단위임에도 불구하고 SI 기본 단위로 채택되어 차원이 N\sf N인 단위로 취급한다.[7] 빈표준평균바닷물(Vienna Standard Mean Ocean Water). 이름에 바닷물이 들어가지만 증류를 통해 염을 제거한 순수한 물이며 과거 물의 삼중점을 정의할 때 쓰였던 표준 물질이다.[8]5500.5500., 100.100.은 각각 유효숫자 4자리, 3자리이다.[9] 단, 손계산에서 이들 무리수의 근삿값으로 각각 3.143.14, 2.7182.718, 1.4141.414 등이 제시되었을 경우 측정치로 간주하고 유효숫자로서 계산한다.[10] 은행업자들이 즐겨 썼던 방식이기 때문에 '은행업자 반올림'(banker's rounding)이라고도 한다.[11] 어디까지나 유효숫자의 끝수 처리 규칙에 따라 00이 사라진 것일 뿐이며 소수점 아래 마지막 00을 생략하는 일반적인 약속에 의한 것이 아님에 주의하자. 결과만 같아진 것일 뿐이다.

라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.

문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.