윤서인에게 고소당한 카연갤 만화가 유효숫자에 대한 내용은 윤서인 디시인사이드 만화가 고소 사건 문서 참고하십시오.
<colbgcolor=#000> 과학 연구 · 실험 Scientific Research · Experiment | ||||
{{{#!wiki style="margin: 0 -10px -5px" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -6px -1px -11px" | <colbgcolor=#000><colcolor=#fff><rowcolor=#000,#fff> 배경 | 과학적 방법 | ||
기반 | 수학(미적분학 · 선형대수학 · 미분방정식) · 통계학(수리통계학 · 추론통계학 · 기술통계학) | |||
연구·탐구 | 논증(귀납법 · 연역법 · 유추(내삽법 · 외삽법)) · 이론(법칙 · 공리 · 증명 · 정의 · 근거이론 · 이론적 조망) · 가설 · 복잡계(창발) · 모형화(수학적 모형화) · 관측 · 자료 수집 · 교차검증 · 오컴의 면도날 · 일반화 | |||
연구방법론 | 합리주의 · 경험주의 · 환원주의 · 복잡계 연구방법론 · 재현성(연구노트) | |||
통계적 방법 | 혼동행렬 · 회귀 분석 · 메타 분석 · 주성분 분석 · 추론통계학(모형(구조방정식) · 통계적 검정 · 인과관계와 상관관계 · 통계의 함정 · 신뢰도와 타당도) | |||
측정·물리량 | 물리량(물리 상수 · 무차원량) · 차원(차원분석) · 측도 · 단위(단위계(SI 단위계 · 자연 단위계) · 단위 변환) · 계측기구 · 오차(불확도 · 유효숫자 · 과학적 기수법) | |||
실험 | 실험설계 · 정성실험과 정량실험 · 실험군과 대조군 · 변인(독립 변인 · 조작 변인 · 종속 변인 · 변인 통제) · 모의 실험(수치해석) · 맹검법 · 사고실험 · 인체실험 · 임상시험 · 실험 기구 | |||
연구윤리 | 뉘른베르크 강령 · 헬싱키 선언 · 연구투명성 · 연구 동의서 · 연구부정행위 · 표절(표절검사서비스) · 편향 · 문헌오염 · 자기교정성 · 연구윤리위원회 | |||
논문·과학 공동체 | 소논문 · 리포트 · 논문제출자격시험 · 연구계획서 · 형식(초록 · 인용(양식 · 참고문헌) · 감사의 글) · 저자 · 학회 · 세미나 · 학술대회 · 동료평가 · 지표 · 학술 데이터베이스 · 게재 철회 · 학제간 연구 | |||
철학 관련 정보 · 연구방법론 관련 정보 · 수학 관련 정보 · 자연과학 관련 정보 · 물리학 관련 정보 · 통계 관련 정보 · 사회과학 조사연구방법론 | }}}}}}}}} |
有效數字; significant figures
1. 개요
측정값은 측정에 사용된 도구의 측정 분해능(measurement resolution) 정도에 따라 각기 다른 자릿수로 나타난다. 똑같은 부피를 재더라도 피펫의 최소 단위가 [math(\rm10\,mL)]인 것과 [math(\rm0.1\,mL)]인 것은 최소 눈금을 읽는 방식[1]이 다르기 때문에 자릿수에 차이가 날 수 밖에 없다. 유효숫자는 얻어진 측정값의 숫자 중 어디까지가 의미있는지를 나타내는 척도이며, 비단 이공계 관련 분야뿐만 아니라 측정이 필수적인 모든 분야에서 반드시 숙지해야하는 개념이다.유효숫자에서 불확실성(uncertainty)을 나타내는 숫자는 맨 마지막 한 자릿수의 숫자이기 때문에 그 앞까지는 확실한 측정값이라는 것을 보장한다는 정보가 담겨있다. 이를테면 원주율을 유효숫자 5자리인 [math(3.1416)]으로 나타냈을 때 [math(3.141)]까지가 확실한 값이고 범위는 [math(3.14155)] 이상 [math(3.14165)] 이하[2]의 범위의 값을 처리한 불확실한 값임을 의미한다.
단 이는 무작위 오차(random error)와는 다른 개념이다. 무작위 오차는 반복된 실험을 통해 얻어진 측정값들을 통계적으로 처리한 결과 필연적으로 생길 수밖에 없는 측정값의 한계폭을 의미하고 표기로도 [math(a\pm b)][3]와 같이 나타낸다. 반면 유효숫자는 이러한 통계적인 의미를 내포하고 있지 않으며 오로지 측정을 한 번 하는 데에 사용한 도구의 분해능에 대한 정보만 제공할 뿐이다.
2. 유효숫자를 판단하는 방법
2.1. 유효숫자인 경우
측정값에 한하여[4] [math(\bf0)]이 아닌 숫자로 시작하는 자리부터 유효숫자이다. 소수점 아래에서 마지막에 등장하는 [math(\bf0)] 역시 유효숫자이고, 연산에서 아주 중요한 요소로 작용하기 때문에(후술) 함부로 생략해서는 안 된다.예를 들어 어떤 용기의 부피가 '[math(\rm1.000\,L)]'라고 측정되었을 때, 이를 '[math(\rm1\,L)]'라고 쓰면 틀린 것이다. [math(\rm1.000\,L)]는 최소 단위가 [math(\rm0.01\,L)]인 용기를 써서 [math(\rm0.001\,L)] 단위까지 눈대중으로 읽은 결과로, 최소 소수 둘째 자리는 [math(0)]인 게 확실하다는 뜻을 내포하고 있기 때문이다. 물론 유효숫자가 아니라면 소수점 아래 마지막에 오는 [math(0)]을 생략한다는 일반적인 약속을 적용해도 무관하다.
측정값이 아니고 개념적으로 배수 관계가 명확하다 하더라도 그 수치가 터무니없이 커서 굳이 전체 자릿수를 다 알 필요가 없는 경우 과학적 기수법으로 나타내기도 하는데 이때는 유효숫자로 간주해서 계산한다. 컴퓨터의 용량 등에 쓰이는 단위인 [math(\rm TiB)][5]에서 [math(\rm Ti = \times2^{40})]으로 명확한 계수의 배수이지만 이를 [math(1.0995\times10^{12})]로 나타냈다면 유효숫자이다.[6]
아래의 예시에서 적색 숫자가 모두 유효숫자에 해당한다.
- 황금비 [math(\varphi)]의 근삿값 [math({\color{red}1.6180})] (유효숫자 5자리)
- 기체상수 [math(R \approx\rm0.0{\color{red}82}\,atm\!\cdot\!L/(mol\!\cdot\!K))] (유효숫자 2자리)
- [math(rm Kr)]의 전기 음성도 [math({\color{red}3.00})] (유효숫자 3자리)
- VSMOW[7]의 어는점 [math(\rm{\color{red}0.000}\,\degree\!C)] (유효숫자 4자리)
- VSMOW의 끓는점 [math(\rm{\color{red}10\overline0}\,\degree\!C)] (유효숫자 3자리)
- 태양의 표면 온도 [math(\rm{\color{red}5\underline5}00\,\degree\!C)] (유효숫자 2자리)
유리수의 소수 표현 중에 순환마디의 위나 아래에 줄을 긋는 경우가 있고(해당 문서 참조) 후자 2개처럼 유효숫자 마지막 자릿수에 줄을 긋는 표기는 혼동을 야기할 수 있기 때문에 일반적이지 않으며, 보통은 줄 없이 그냥 [math(5500)], [math(100)]처럼 나타낸다. 문제는 이렇게 쓰면 소수점 위에서 [math(0)]으로 끝나고 있기 때문에 별도의 언급이 없으면 어느 [math(0)]까지가 유효숫자인지 판단할 수 없다. 유효숫자의 자릿수와 정수의 자릿수가 같을 때, 이를테면 [math(5500{\color{red}.})], [math(100{\color{red}.})]처럼 소수점을 찍어서 유효숫자를 명시할 순 있으나[8] 유효숫자의 자릿수가 정수 자릿수보다 작은 경우엔 답이 없다. 이를 보완하기 위해 나온 것이 바로 과학적 기수법(scientific notation)이다.
2.2. 유효숫자가 아닌 경우
'~개', '~회' '~배' 등과 같이 개념적으로 계수가 명확한 것, 즉 이산적인(discrete) 값은 유효숫자가 아니다. 이를테면 물 분자의 분자량을 계산할 때, 수소 원자의 개수만큼 곱해주는 [math(2)]는 유효숫자가 아니다. 꼭 정수만 해당되는 건 아니고, 수소의 연소로 인한 물의 생성 엔탈피는 산소 기체에 [math(\dfrac12)]만큼의 계수가 곱해지는데 이는 반응한 산소와 생성된 물의 입자수 비가 [math(1:2)]라는 관계에서 나온 것이기 때문에 산소의 물질량이나 반응한 기체의 부피 등을 구할 때 곱해지는 [math(\dfrac12)] 혹은 [math(0.5)]는 유효숫자가 아니다. 이 밖에도 자릿수가 약속되어있지 않은 수학 상수들([math(pi)], [math(e)], [math(sqrt2)] 따위)[9]도 유효숫자가 아닌 것으로 간주하며 이들은 무한소수이기 때문에 유효숫자라 하더라도 자릿수가 무한개다. 또한 유효숫자는 실수로서의 개념이기 때문에 복소수의 허수단위 [math(i)]나 사원수의 허수 단위 [math(i)], [math(j)], [math(k)]등에서는 굳이 따지지 않는다. 단, 이들 단위에 곱해진 계수에 대해서는 경우에 따라 유효숫자로 간주할 수도 있다.2.3. 과학적 기수법
측정값을 유효숫자 [math(s\,(1\le s<10))]와 [math(10)]을 밑(base)으로 하는 정수 [math(n)]의 거듭제곱을 이용하여 [math(s\times10^n)]의 꼴로 나타내는 방법. 계산기에서는 [math(10^n = {\sf e}n)] 혹은 [math( {\sf E}n)]으로 표기하기도 한다. 앞선 예시들을 과학적 기수법으로 나타내면 다음과 같다.- [math(1.6180)]
- [math(\rm8.2\times10^{-2}\,atm\!\cdot\!L/(mol\!\cdot\!K))]
- [math(3.00)]
- [math(\rm0.000\,\degree\!C)]
- [math(\rm5.5\times10^3\,\degree\!C)]
- [math(\rm1.00\times10^2\,\degree\!C)]
3. 끝수 처리
국제표준화기구(ISO)에서는 ISO 80000-1를 통해 소위 '오사오입(五捨五入)'이라 불리는 최근접 짝수 반올림(Round half to nearest even)[10]을 권장한다. 어떤 수를 유효숫자 [math(n)]개로 반올림할 때, ([math(n+1)]) 자릿수에 있는 숫자에 따른 반올림 방식은 원칙적으로 기존 반올림과 같지만, [math(5)]이고 그 다음 자릿수의 숫자가 없을 때에만(그 다음 자릿수부터 모두 '0일 때'에만) 반올림한 결과의 마지막 자릿수 [math(\underline n)]의 숫자가 짝수가 되게 하는 방식이다. 즉, ([math(\boldsymbol{n+1})])자리의 숫자가 [math(\bf5)]이고 그 다음 자릿수의 숫자가 없을 때, [math(\boldsymbol n)]자리의 숫자가 홀수면 올리고 짝수면 버린다. 예를 들면 [math(0.845)]를 유효숫자 2자리로 처리하면 기존 반올림 [math(0.85)]와는 달리 [math(0.84)]가 되고 ([math(5)] 앞이 [math(4)]로 짝수) [math(0.577\,215)]를 유효숫자 5자리로 처리하면 [math(0.577\,22)] ([math(5)] 앞이 [math(1)]로 홀수)가 된다. 하지만 [math(1.3451)]을 유효숫자 3자리로 처리하면 소수점 아래 셋째 자리가 5이지만 넷째자리가 있으므로(넷째자리부터가 모두 '0이 아니'므로) 기존 반올림 방식을 적용하여 [math(1.35)]가 된다.4. 유효숫자의 연산
전술한대로 유효숫자는 불확실성을 내포하고 있기 때문에, 연산 결과 불확실성이 줄어들거나 늘어나서는 안된다는 대원칙을 토대로 유효숫자를 처리하는 규칙이 약속되어있다. 각 규칙의 설명은 어디까지나 정성적인 수준으로 엄밀하지 않으며 구체적인 수치로 따져보면 예외가 존재하지만 편의상 그렇게 정해져 있다고 생각하면 된다. 붉은 글씨는 각 유효숫자 및 계산 과정에서 불확실한 숫자임을 나타낸다.4.1. 덧셈, 뺄셈
불확실한 숫자는 맨 마지막 자릿수의 숫자이므로, 그 자릿수보다 아래에 있는 숫자는 모두 불확실하다고 볼 수 있다. 이를테면 [math(1.41{\color{red}4})]는 소수 셋째 자리부터 불확실한 숫자이고 [math(0.301{\color{red}0})]은 소수 넷째 자리부터 불확실한 숫자이다. 이 둘을 더하면 [math(1.71{\color{red}50})]이 되며 불확실한 숫자가 2자리로 늘어나므로 불확실성 불변의 원칙에 따라 1자리가 되도록 끝수 처리를 해야한다. 위 결과에서는 소수 셋째 자리부터 불확실한 수치이므로 [math(1.71{\color{red}5})]로 정리한다.[11]이를 일반화하면, 덧셈 및 뺄셈에서는 소수점 아래 자릿수가 가장 적은 쪽에 맞추면 된다는 것을 알 수 있다.
한편, 소수점 아래 자리가 없는 정수의 경우, 값을 과학적 기수법으로 나타내면 소수점 아래 자리를 포함하는 수치로 나타낼 수 있고, 덧셈 및 뺄셈을 연산하려면 모든 수의 자릿수가 같아야하므로, 다른 수치들도 똑같은 거듭제곱으로 통일시켜서 소수점을 이동시켜주면 된다. 이를 정리하면 덧셈, 뺄셈에서의 연산 규칙은 다음과 같다.
지수가 가장 큰 쪽으로 거듭제곱을 통일한 과학적 기수법에서 유효숫자의 소수점 아래 자릿수가 가장 적은 쪽에 맞춘다.
- [math(3.141\,5\times10^3 + 2.718\,28\times10^{-1} \approx 3.141\,8\times10^3)]
지수가 큰 쪽으로 거듭제곱을 통일하면 [math((3.141\,{\color{red}5} + 0.000\,271\,82{\color{red}8})\times10^3)]으로 나타낼 수 있고 소수점 아래 자릿수를 비교해보면 전자는 4자리, 후자는 9자리이므로 결과값은 소수 넷째 자리까지 정리한다. 이를 도식화하면 다음과 같다.
[math(\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. 곱셈, 나눗셈
불확실한 수치가 곱해지면 다른 한쪽이 확실한 수치여도 결과적으로 불확실한 수치가 포함된다는 것은 납득할 수 있을 것이다. 이때, 어느 자리까지 불확실한 수치로 봐야하는지에 대한 문제가 생긴다. 이를테면 유효숫자인 [math(3.{\color{red}6})]을 [math(2)]배하는 연산 [math(3.{\color{red}6}\times2)]를 생각해보자. 일단 결과는 [math(7.2)]인데 여기서 일의 자리의 [math(7)]은 확실한 수치 [math(3\times2)]에 불확실한 수치와의 곱 [math(0.{\color{red}6}\times2 = {\color{red}1.2})]의 [math(\color{red}1)]이 더해진 값이니까 [math(7.2)] 전체가 불확실한 값이 되는 것일까? 얼핏 합당한 추론같아 보이지만, 곱셈 연산을 거듭할수록 불확실한 자릿수가 점점 늘어나 결과적으로 유효숫자의 자릿수가 줄어드는 문제가 있는 데다가(불확실성 불변의 원칙 위배), 두 수의 곱이 [math(10)]미만이면 이러한 특징이 나타나지 않아 모든 곱셈 연산에 일괄적으로 적용할 수 없다는 문제도 있다. 따라서 이러한 판단은 적절치 않다.본디 곱셈이란 같은 것을 여러 번 더하는 덧셈 연산과 등가이다. 즉, [math(3.{\color{red}6}\times2 = 3.{\color{red}6}+3.{\color{red}6})]이다. 덧셈, 뺄셈의 연산 규칙을 적용하면 소수 첫째 자리가 불확실한 값들의 덧셈이므로 결과 역시 소수 첫째 자리까지 정리하며 결과적으로 [math(7.{\color{red}2})], 즉 여전히 마지막 자릿수만 불확실한 수치라는 것을 알 수 있다. 만약 [math(\color{red}2)]도 유효숫자라면 [math(3\times{\color{red}2} = {\color{red}6})] 역시 불확실한 수치이기 때문에 [math({\color{red}6} + 1 = {\color{red}7})]도 불확실한 수치가 되며, 그 결과 [math({\color{red}7.2} \approx \color{red}7)]로 정리한다.
이 과정을 잘 살펴보면, 전자는 유효숫자 2자리가 그대로 유효숫자 2자리가 되는 연산이고, 후자는 유효숫자 2자리와 유효숫자 1자리가 곱해져서 유효숫자 1자리가 되는 연산임을 알 수 있다. 즉 결과값은 곱하는 유효숫자의 자릿수가 가장 적은 쪽에 맞춰진다.
나눗셈은 역수의 곱셈 연산과 같으므로 이를 정리하면 곱셈, 나눗셈에서의 연산 규칙은 다음과 같다.
유효숫자의 자릿수가 가장 적은 쪽에 맞춘다.
- [math(1.4\times0.6931 \approx 0.97)]
유효숫자 2자리와 유효숫자 4자리의 곱이므로 결과값은 유효숫자 2자리로 정리한다. 마찬가지로 도식화하면 다음과 같이 된다.
[math(\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})]
혹은
[math(\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. 지수, 로그
아래의 설명은 밑이 [math(10)]일 때만 유효한 방식이지만, 각각 밑이 [math(2)], [math(e)] 등으로 다르더라도 상용로그 값을 단순히 곱하거나 나누는 것만으로 밑을 [math(10)]으로 바꿔줄 수 있기 때문에 모든 지수, 로가리듬에 일괄적으로 적용된다. 이를테면 [math(2^x)]는 [math(2^x = 10^{\log2^x} = 10^{x\log2})]로, [math(\ln x)]는 [math(\ln x = \dfrac{\log x}{\log e})]로 바꿀 수가 있고, [math(\log2)], [math(\log e)] 등은 유효숫자가 무한개인데다 곱셈, 나눗셈 연산에서는 유효숫자의 자릿수가 가장 적은 쪽에 맞추므로 대입값의 유효숫자 자릿수가 그대로 유지되며, 유효숫자 처리는 맨 마지막에 한다는 원칙에 따라(아래 복합 연산 항목 참조) 결과값의 유효숫자 자릿수에는 변함이 없다.지수와 로가리듬이 서로 역함수 관계인 것처럼 유효숫자 처리 규칙도 서로 역관계에 있음을 알 수 있다. [math(\log)]는 상용로그이다.[12]
- 지수
지수의 정수 부분은 과학적 기수법에서 규모를 나타내는 부분(거듭제곱)으로 간주할 수 있으며 이 부분은 불확실성이 없는 확실한 값이다. 따라서 나머지 소수 부분만을 유효숫자로 간주하여 계산하며 지수에서의 연산 규칙은 다음과 같다.결과값의 유효숫자 개수는 지수의 소수점 아래 자릿수와 같다. - [math(10^{3.1415} \approx 1.385\times10^3)]
지수는 [math(3.0000 + 0.1415)]로 분리해서 쓸 수 있으므로 위 식은 [math(10^310^{0.1415} = 10^{0.1415}\times10^3)]이 된다. 따라서 유효숫자는 [math(10^{0.1415} = 1.385160\cdots\cdots)]에만 적용되며 대입된 유효숫자가 4자리이므로 불확실성 불변의 원칙에 따라 결과값도 4자리로 정리한다. 즉, [math(10^{3.{\color{cornflowerblue}1415}} \approx {\color{cornflowerblue}1.385}\times10^3 = 1385.)]. - 로가리듬
진수를 과학적 표기법으로 나타내면 [math(10^n)]의 로그값 및 유효숫자의 로그값의 합이 된다. [math(\log10^n = n)]으로서 불확실성이 없는 확실한 값이므로 나머지 유효숫자의 로그에 불확실성 불변의 원칙을 적용하면 된다. 이때, 유효숫자의 상용로그란 곧 가수와 같으므로 결과값이 반드시 소수점 아래 자리에서 나타나며, 불확실성 불변의 원칙에 따라 대입값의 유효숫자 자릿수가 결과값의 소수점 아래 자릿수가 된다. 정리하면 로가리듬에서의 연산 규칙은 다음과 같다.진수의 유효숫자 개수가 결과값의 소수점 아래 자릿수와 같다. - [math(\log314.1 \approx 2.4971)]
위 식은 [math(\log\left(3.141\times10^2\right) = \log10^2 + \log3.141 = 2 + \log3.141)]로 나타낼 수 있다. 대입값의 유효숫자가 4자리이므로 [math(\log3.141 = 0.49706793\cdots\cdots)]도 소수 아래 4자리까지 정리한다. 즉, [math(\log{\color{cornflowerblue}314.1} \approx 2.{\color{cornflowerblue}4971})].
로드아일랜드 대학교의 자료
미국 나발 아카데미의 자료
온라인 학습 사이트 Cengage의 설명
'간단 화학'(Chemistry in a Nutshell) 유튜브 채널의 영상 설명
4.4. 제곱근
제곱근 연산 결과의 유효숫자 개수에 관해서는 명백하게 정해진 룰은 없으나, 대체로 곱셈 / 나눗셈 연산과 비슷하게 피제곱근 값의 유효숫자 개수에 맞춘다(#1, #2)는 게 일반적이다. 후술할 수치해석의 조건수 관점에서 따져봐도 원래 유효숫자 개수에 맞춰서 구하는 게 맞다.한편, 피제곱근 값의 유효숫자 개수보다 1개 더 많이 구한다(아카이브)는 의견도 있는데, 이 논리는 상기 로가리듬의 경우와 유사하다. 예컨대 [math(\sqrt{3.00} = 1.732\cdots)]에서 제곱해서 3보다 작은 최대의 정수는 1로 확실하므로 전체 유효숫자 개수는 소수 부분에 적용한다는 논리이다. 그러나 이 설명에 따르면 [math(\sqrt{101.} = 10.0498\cdots)]은 10.050으로 처리해야하며 유효숫자의 자릿수가 2개 늘어난 값이 되어 맞지 않는 사례를 더 많이 찾아볼 수 있다.[13] 또한 측정값의 유효숫자가 적어도 제곱근 연산을 반복하기만 하면 신뢰도를 높일 수 있다는 문제점 또한 안고 있다.
4.5. 수치해석적인 관점에서의 고찰
기타 일반적인 함수에 대한 유효숫자 계산법은 교과과정에서 나오지 않는데, 연산에 의해 변하는 불확실성을 정확히 설명하기 위해서는 미분, 더 엄밀히는 선형근사(linear approximation)와 바나흐 공간(Przestrzeń Banacha)이라는 개념이 필요하고, 바나흐 부동점 정리(twierdzenie Banacha o kontrakcji)의 이해가 전제되기 때문이다. 무작정 컴퓨터에 노가다를 시키는 게 아니라 해당 함수의 거동을 면밀히 살펴보고 계산할 틀을 세밀히 잘 짜야 샷건을 안 친다.임의의 측정값 [math(x)]의 유효숫자가 [math(\alpha)]개이고 [math(n)]제곱의 스케일을 갖는다고 할 때, 각 자리의 수를 10 미만의 범자연수 [math(a_i)], 즉 [math(a_i \in \mathbb Z~(0\le a_i\le9))]를 이용해서 나타내면
[math(x = a_1.a_2a_3\cdots a_\alpha\times10^n)] (단 [math(a_1\ne0)]) |
즉 [math(x)]의 변동 [math(\delta x)]가 다음과 같이 [math(x)]의 유효숫자 개수만큼 스케일이 줄어든 범위 이내에 있으면 유효숫자에 변동이 없음을 알 수 있다.
[math(\begin{aligned} &|\delta x| \le |x\times10^{-\alpha}| = 10^{-\alpha}|x| \\ &\Rightarrow x \pm |\delta x| \approx x\end{aligned})] |
[math(\begin{aligned}|\delta f(x)| &\approx \biggl|\frac{{\rm d}f(x)}{{\rm d}x}\,\delta x\biggr| = |f'(x)\,\delta x| \\ &\le |f'(x)(x\times10^{-\alpha})| = 10^{-\alpha}|xf'(x)| \end{aligned})] |
[math(|\delta f(x)| \le 10^{-\alpha}|xf'(x)| \le 10^{-\beta}|f(x)| \\ \therefore 10^{-\beta} \ge 10^{-\alpha}\biggl|\cfrac{xf'(x)}{f(x)}\biggr|)] |
[math(\beta \le \alpha - \lg\biggl|\cfrac{xf'(x)}{f(x)}\biggr|)] |
연산 | 수식 | 조건수 |
덧셈 / 뺄셈 | [math(x+a)] | [math({\left|\dfrac x{x+a}\right|})] |
곱셈 | [math(ax)] | [math(1)] |
나눗셈 | [math(\dfrac ax)] | [math(1)] |
다항식 | [math(x^n)] | [math(|n|)] |
지수 | [math(a^x)] | [math(|x\ln a|)] |
로그 | [math(\log_ax)] | [math({\left|\dfrac1{\ln x}\right|})] |
삼각함수 | [math(\sin x)] | [math(|x\cot x|)] |
[math(\cos x)] | [math(|x\tan x|)] | |
[math(\tan x)] | [math(|2x\csc2x|)] | |
역삼각함수 | [math(\arcsin x)] | [math(\dfrac x{\sqrt{1-x^2}\arcsin x})] |
[math(\arccos x)] | [math(\dfrac{|x|}{\sqrt{1-x^2}\arccos x})] | |
[math(\arctan x)] | [math(\dfrac x{\sqrt{1-x^2}\arctan x})] |
위 표를 보면 알 수 있듯이, 초월함수들은 하나같이 조건수에 변수 [math(x)] 자체를 포함하기 때문에 유효숫자의 개수가 일괄적으로 정해지지 않는다는 문제점이 있다. 그래서 조건수를 이용하지 않고 그냥 원래 유효숫자 개수에 맞추는 걸로 통일시키거나, 엄밀하게 오차를 통계적으로 검정해서 오차를 이용한 표기법으로 나타내는 경우도 있다.
4.6. 복합 연산
기본적으로 사칙연산의 순서에 따라 계산해나간다. 단, 유효숫자의 처리 규칙이 연산 종류에 따라 판이하게 다르기 때문에(특히 덧셈/뺄셈이 다른 연산 규칙과 두드러지게 다르다.) 연산 종류끼리 중간 과정을 계산해서 각각의 유효숫자 혹은 소수점 아래 자릿수를 확인해야 한다. 당연한 사항이지만 유효숫자 처리는 연산 맨 마지막에 하는 것이 원칙이다.4.7. 예시
환율 같은 것을 적용하여 금액을 환산할 때도 유효숫자를 고려해야 한다. 예를 들어 달러-원 환율을 1234.56원/달러[15] 라고 할때, 정확히 1000달러를 환산하면 1,234,560원이지만, '약 1000달러'라고 하면 그 의미상 유효숫자가 1개 또는 2개 이하로 보는 것이 타당하므로 약 1000달러 = 약 1,200,000원 으로 써야 맞다. 그래서, 빌 게이츠나 일론 머스크 같은 부자들의 재산은 2~3 자리 정도의 유효숫자를 가지는 근사치로만 표시되기 때문에, 한화로 환산해줄 경우도 2~3자리 정도의 유효숫자만을 적어 주어야 맞다. 예를 들어 2022년 기준 빌 게이츠의 추정 재산은 약 1290억 달러 인데, 당시의 환율 1218원/달러를 적용하면, 157조 1220억원이 되지만, 유효숫자를 고려하면 약 157조원 이라고 써야 한다.단위 변환할때도 비슷한 규칙이 적용된다 1인치 = 2.54cm 로 계산되는데, '약 4인치'라고 하면 유효숫자를 고려해서 '약 4인치 = 약 10.16cm'라고 쓰면 안되고, '약 4인치 = 약 10cm' 라고 써야 한다.
유효숫자 오류가 있는 표기 |
유효숫자를 고려한 이미지 |
이런 오류는 언론기사에서도 볼 수 있다. 이 기사에서 북한의 금 추정 매장량은 2000t 으로 나온다. 그런데, 당연히 이는 정확히 2000t 이란 의미가 아니라 대략 2000t 이란 뜻이다. 즉 유효숫자는 1~2개 정도이다. 그런데, 여기에 당시 기준 금 시세인 30,663,700원/kg 를 그냥 곱해서 61조3274억원으로 나타내었지만, 당연히 이는 유효숫자 오류이다. 유효숫자 2개 정도로 봐서 약 61조원으로 써야 맞다. 아연, 철, 석회석, 마그네사이트 등도 모두 마찬가지이다. 게다가 마그네사이트 같은 경우는 1톤 달러 가격에 달러-원 환율까지 적용해서 7개의 유효숫자가 있는 것처럼 표기되었지만, 원 수치가 '약 60억톤'이라는 유효숫자 1~2개짜리 수이므로, 원으로 환산할때도 약 2700조원으로 표기하는 것이 맞다.
NASA는 원주율을 유효숫자 15개인 3.141592653589793으로 사용한다. 그 이상으로 유효숫자가 많아지면 태양계 내부 임무에서 측정하는 거리의 오차가 원자 길이 미만으로 줄어들어 체감상 큰 차이를 느낄 수 없고 아무리 정밀한 측정 장치를 동원해도 유효숫자 16개 이상인 측정값을 얻기 힘드므로, 원주율의 유효숫자를 제한함으로써 연산/수치 저장에 소모되는 자원을 아끼기 위함이다.
[1] 참고로 눈금을 읽을 때에는 최소 눈금의 [math(1/10)]단위까지 눈대중으로 읽는 것이 측정의 기본이다.[2] 반올림 체계에서는 [math(3.14165)] 미만이 되지만 ISO에서 권장하는 최근접 짝수 반올림 체계에서는 [math(3.14165)] 이하이다. 자세한 것은 끝수 처리 문단 참고.[3] 실제 측정값의 자릿수가 길 경우 괄호를 써서 나타내기도 한다. 이를테면 미세구조상수 [math(\alpha)]는 [math(\alpha = 0.007\,297\,352\,569\,3\pm0.000\,000\,000\,001\,1)]인데 이게 공간을 많이 차지하기 때문에 주로 [math(\alpha = 0.007\,297\,352\,569\,3(1\,1))]로 나타낸다.[4] 개념적으로 계수 관계가 명확하지 않은 것, 즉 연속적인(continuous) 값을 말한다.[5] [math(\rm Ti)]는 '테비'(tebi)라고 읽는다. 보통 [math(\rm i)]를 생략한 [math(\rm TB)](테라바이트)로 많이 나타내는데 엄밀히는 틀린 표기이다. [math(\rm T = \times1000^4 = \times10^{12})]를 의미하는 SI 접두어이기 때문.[6] 이와 비슷하게 [math(rm mol)]은 개념상 입자의 개수를 나타내는 무차원의 단위임에도 불구하고 SI 기본 단위로 채택되어 차원이 [math(\sf N)]인 단위로 취급한다.[7] 빈 표준 평균 바닷물(Vienna Standard Mean Ocean Water). 이름에 바닷물이 들어가지만 증류를 통해 염을 제거한 순수한 물이며 과거 물의 삼중점을 정의할 때 쓰였던 표준 물질이다.[8] 즉 [math(5500.)], [math(100.)]은 각각 유효숫자 4자리, 3자리이다.[9] 단, 손계산에서 이들 무리수의 근삿값으로 각각 [math(3.14)], [math(2.718)], [math(1.414)] 등이 제시되었을 경우 측정치로 간주하고 유효숫자로서 계산한다.[10] 은행업자들이 즐겨 썼던 방식이기 때문에 '은행업자 반올림'(banker's rounding)이라고도 한다.[11] 어디까지나 유효숫자의 끝수 처리 규칙에 따라 [math(0)]이 사라진 것일 뿐이며 소수점 아래 마지막 [math(0)]을 생략하는 일반적인 약속에 의한 것이 아님에 주의하자. 결과만 같아진 것일 뿐이다.[12] 다만 일부 분야에 따라서는 [math(\log)]로 쓰고 자연로그(밑이 [math(e)])나 이진로그(밑이 [math(2)])를 뜻하는 경우도 있으니 사전에 정의를 확인해야 한다.[13] 그러나 이는 통상적으로 사용되는 곱셈 등의 유효숫자 계산 또한 가지고 있는 문제이다.[14] 단, 이렇게 조건수를 이용하는 경우 역시 문제점이 있는데 10제곱근 이하로 제곱근 지수가 작아지면 상용로그값 역시 -1 밑으로 떨어지기 때문에 [math(\beta = \alpha + 1)]이 되어 유효숫자를 더 많이 세야한다는 결론에 도달한다. 또한 제곱, 세제곱 등은 곱셈 연산의 일종인데도 불구하고 조건수가 1보다 커져 [math(\beta \le \alpha - \lg n \Rightarrow \beta < \alpha)], 즉 유효숫자의 개수가 점점 줄어들어야 한다는 모순점도 내포하고 있다.[15] 예시를 위해 사용