나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-09-27 18:28:16

유효숫자


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
윤서인에게 고소당한 카연갤 만화가 유효숫자에 대한 내용은 윤서인 디시인사이드 만화가 고소 사건 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
해석학·미적분학
Analysis · Calculus
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#26455A>실수와 복소수실수(실직선 · 아르키메데스 성질) · 복소수(복소평면 · 극형식 · 편각) · 근방 · 유계 · 콤팩트성 · 완비성
함수함수 · 조각적 정의 · 항등함수 · 역함수 · 멱함수 · 다변수함수(동차함수 · 음함수) · 다가 함수 · 함수의 그래프 · 좌표계 · 닮은꼴 함수 · 극값 · 볼록/오목 · 증감표
초등함수(대수함수 · 초월함수 · 로그함수 · 지수함수 · 삼각함수) · 특수함수 · 범함수(변분법 · 오일러 방정식) · 병리적 함수
극한·연속 함수의 극한 · 수열의 극한 · 연속함수 · ε-δ 논법 · 수렴(균등수렴) · 발산 · 부정형 · 점근선 · 무한대 · 무한소 · 특이점 · 0.999…=1
중간값 정리 · 최대·최소 정리 · 부동점 정리 · 스털링 근사 · 선형근사(어림)
수열·급수 수열(규칙과 대응) · 급수(멱급수 · 테일러 급수(/목록) · 조화급수 · 그란디 급수(라마누잔합) · 망원급수(부분분수분해)) · 그물
오일러 수열 · 베르누이 수열 · 월리스 곱
단조 수렴 정리 · 슈톨츠-체사로 정리 · 축소구간정리 · 급수의 수렴 판정 · 리만 재배열 정리 · 바젤 문제 · 파울하버의 공식 · 오일러-매클로린 공식 · 콜라츠 추측미해결
미분 미분 · 도함수(이계도함수 · 도함수 일람) · 곱미분 · 몫미분 · 연쇄 법칙 · 임계점(변곡점 · 안장점) · 매끄러움
평균값 정리(롤의 정리) · 테일러 정리 · 역함수 정리 · 다르부 정리 · 로피탈 정리
립시츠 규칙 · 뉴턴-랩슨 방법 · 유율법 · 경사하강법
적분 적분 · 정적분(/예제) · 스틸체스 적분 · 부정적분(부정적분 일람) · 부분적분(LIATE 법칙 · 도표적분법 · /예제) · 치환적분 · 이상적분(코시 주요값)
미적분의 기본정리 · 적분의 평균값 정리
리시 방법 · 2학년의 꿈
다변수·벡터 미적분 편도함수 · 미분형식 · · 중적분(선적분 · 면적분 · 야코비안) ·야코비 공식
라그랑주 승수법 · 오일러 동차함수 정리 · 선적분의 기본정리 · 스토크스 정리(발산 정리 · 그린 정리변분법
미분방정식 미분방정식(/풀이) · 라플라스 변환
측도론 측도 · 가측함수 · 곱측도 · 르베그 적분 · 절대 연속 측도 · 라돈-니코딤 도함수
칸토어 집합 · 비탈리 집합
복소해석 코시-리만 방정식 · 로랑 급수(주부) · 유수 · 해석적 연속 · 오일러 공식(오일러 등식 · 드 무아브르 공식) · 리우빌의 정리 · 바이어슈트라스 분해 정리 · 미타그레플레르 정리
함수해석 공간 위상 벡터 공간 · 국소 볼록 공간 · 거리공간 · 프레셰 공간 · 노름공간 · 바나흐 공간 · 내적공간 · 힐베르트 공간 · Lp 공간
작용소 수반 작용소 · 에르미트 작용소 · 정규 작용소 · 유니터리 작용소 · 컴팩트 작용소
대수 C*-대수 · 폰 노이만 대수
정리 한-바나흐 정리 · 스펙트럼 정리 · 베르 범주 정리
이론 디랙 델타 함수(분포이론)
조화해석 푸리에 해석(푸리에 변환 · 아다마르 변환)
관련 분야 해석 기하학 · 미분 기하학 · 해석적 정수론(1의 거듭제곱근 · 가우스 정수 · 아이젠슈타인 정수 · 소수 정리 · 리만 가설미해결) · 확률론(확률 변수 · 중심극한정리) · 수치해석학 · 카오스 이론 · 분수계 미적분학 · 수리물리학(양-밀스 질량 간극 가설미해결 · 나비에 스토크스 방정식의 해 존재 및 매끄러움미해결) · 수리경제학(경제수학) · 공업수학
기타 퍼지 논리 · 합성곱
}}}}}}}}} ||

<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 단위계 · 자연 단위계) · 단위 변환) · 계측기구 · 오차(불확도 · 유효숫자 · 과학적 표기법)
실험 실험설계 · 정성실험과 정량실험 · 실험군과 대조군 · 변인(독립 변인 · 조작 변인 · 종속 변인 · 변인 통제) · 모의 실험(수치해석) · 맹검법 · 사고실험 · 인체실험 · 임상시험 · 실험 기구
연구윤리 뉘른베르크 강령 · 헬싱키 선언 · 연구투명성 · 연구 동의서 · 연구부정행위 · 표절(표절검사서비스) · 편향 · 문헌오염 · 자기교정성 · 연구윤리위원회
논문·과학 공동체 소논문 · 리포트 · 논문제출자격시험 · 연구계획서 · 형식(초록 · 인용(양식 · 참고문헌) · 감사의 글) · 저자 · 학회 · 세미나 · 학술대회 · 동료평가 · 지표 · 학술 데이터베이스 · 게재 철회 · 학제간 연구
철학 관련 정보 · 연구방법론 관련 정보 · 수학 관련 정보 · 자연과학 관련 정보 · 물리학 관련 정보 · 통계 관련 정보 · 사회과학 조사연구방법론 }}}}}}}}}

1. 개요2. 유효숫자를 판단하는 방법
2.1. 유효숫자인 경우2.2. 유효숫자가 아닌 경우2.3. 과학적 기수법
3. 끝수 처리4. 유효숫자의 연산
4.1. 덧셈, 뺄셈4.2. 곱셈, 나눗셈4.3. 지수, 로그4.4. 제곱근4.5. 수치해석적인 관점에서의 고찰4.6. 복합 연산4.7. 예시


; 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]

아래의 예시에서 적색 숫자가 모두 유효숫자에 해당한다.
유리수의 소수 표현 중에 순환마디의 위나 아래에 줄을 긋는 경우가 있고(해당 문서 참조) 후자 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)]으로 표기하기도 한다. 앞선 예시들을 과학적 기수법으로 나타내면 다음과 같다.유효숫자의 자릿수와 규모(scale)를 한눈에 알아볼 수 있다는 점에서 아주 유용한 표기이지만, 모든 측정값의 표기에 이 방식을 도입하면 공간을 매우 낭비하게 된다는 단점이 있다. 또한 측정값을 이용해서 사칙연산을 할 경우, 과학적 기수법은 곱셈과 나눗셈에서 매우 효율적이지만, 덧셈과 뺄셈에서는 거듭제곱을 맞춰줘야 하기 때문에 다소 번거로워진다는 문제점도 안고 있다.

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]

이를 일반화하면, 덧셈 및 뺄셈에서는 소수점 아래 자릿수가 가장 적은 쪽에 맞추면 된다는 것을 알 수 있다.

한편, 소수점 아래 자리가 없는 정수의 경우, 값을 과학적 기수법으로 나타내면 소수점 아래 자리를 포함하는 수치로 나타낼 수 있고, 덧셈 및 뺄셈을 연산하려면 모든 수의 자릿수가 같아야하므로, 다른 수치들도 똑같은 거듭제곱으로 통일시켜서 소수점을 이동시켜주면 된다. 이를 정리하면 덧셈, 뺄셈에서의 연산 규칙은 다음과 같다.
지수가 가장 큰 쪽으로 거듭제곱을 통일한 과학적 기수법에서 유효숫자의 소수점 아래 자릿수가 가장 적은 쪽에 맞춘다.

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자리가 되는 연산임을 알 수 있다. 즉 결과값은 곱하는 유효숫자의 자릿수가 가장 적은 쪽에 맞춰진다.

나눗셈은 역수의 곱셈 연산과 같으므로 이를 정리하면 곱셈, 나눗셈에서의 연산 규칙은 다음과 같다.
유효숫자의 자릿수가 가장 적은 쪽에 맞춘다.

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]
로드아일랜드 대학교의 자료
미국 나발 아카데미의 자료
온라인 학습 사이트 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(a_\alpha)]에 있기 때문에 이 자릿수 아래에서 일어나는 오차는 상기 덧셈, 뺄셈 규칙에 따라 통상적으로 무시된다.
즉 [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(x)]로 어떤 연산을 시행해서 얻어진 함숫값 [math(f(x))]가 있다고 할 때, [math(f(x))]의 유효숫자는 어떻게 되는지 살펴보자. [math(f(x))]의 변동 [math(|\delta f(x)|)]는 앞선 [math(\delta x)]를 이용해서 다음과 같이 나타낼 수 있다.
[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(f(x))]의 유효숫자 개수를 [math(\beta)]라고 할 때, [math(|\delta x|)]와 마찬가지로 [math(|\delta f(x)| \le |f(x)\times10^{-\beta}| = 10^{-\beta}|f(x)|)] 범위에서는 유효숫자에 변동이 없으며 [math(|\delta x|)]에 의한 변동이 이보다 작으면 [math(f(x))]의 유효숫자에는 변동이 없게 된다. 즉
[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(\biggl|\dfrac{xf'(x)}{f(x)}\biggr|)]은 수치해석에서 조건수(condition number)라 불리는 것이며, 양변에 상용로그를 취하고 부호를 반전해주면 유효숫자의 개수에 관한 관계식을 얻을 수 있다.
[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(n = \cfrac12)]에 해당하므로 [math(\beta \le \alpha - \lg\cfrac12 = \alpha + \lg2 = \alpha + 0.301029\cdots)]이 된다. 유효숫자 개수는 자연수이므로 결과적으로 [math(\beta \le \alpha)]가 얻어지며 피제곱근의 유효숫자 개수만큼 구하는 게 타당하다.[14]

위 표를 보면 알 수 있듯이, 초월함수들은 하나같이 조건수에 변수 [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' 라고 써야 한다.
파일:북한_광물_매장량.gif
유효숫자 오류가 있는 표기
파일:북한_광물_매장량_유효숫자.png
유효숫자를 고려한 이미지

이런 오류는 언론기사에서도 볼 수 있다. 이 기사에서 북한의 금 추정 매장량은 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] 예시를 위해 사용