도구스학업·수학

오차함수(erf·erfc) 계산기

오차함수 erf(x)와 여오차함수 erfc(x)를 유효숫자를 잃지 않고 계산합니다. erfc를 1 − erf로 구하면 자릿수가 날아가는 상쇄 현상을 두 값을 나란히 놓아 보여 주고, 정규분포 꼬리 확률과 가우스 적분도 함께 냅니다.

음수도 넣을 수 있습니다. 4 이상으로 올리면 1 − erf가 무너지는 것이 보입니다

erf(1)

0.842700792949715

erfc = 1.572992070503 × 10^-1

0x=1

이 넓이에 2/√π를 곱한 것이 erf(x)입니다

erf(x)0.842700792949715
erfc(x) — 제 식으로 계산1.572992070503 × 10^-1
erfc(x) — 1 − erf로 계산1.572992070503 × 10^-1
1 − erf가 잃은 자릿수약 0.8자리
erfcx(x) = e^(x²)·erfc(x)4.275835761558 × 10^-1
log₁₀ erfc(x)-0.803273
∫₀ˣ e^(−t²)dt7.468241328124 × 10^-1
표준정규 누적 Φ(1)0.841344746068543
상측 꼬리 Q(1) = 1 − Φ1.586552539315 × 10^-1
양측 확률 P(|Z| ≤ x)0.842700792949715
계산 근거erf(x) = 2/√π ∫₀ˣ e^(−t²)dt · erfc(x) = 1 − erf(x)Φ(z) = ½(1 + erf(z/√2)) · Q(z) = ½·erfc(z/√2)|x| < 1.5라 항이 전부 양수인 급수 erf(x) = 2/√π·e^(−x²)·Σ 2ⁿx^(2n+1)/(1·3···(2n+1)) 로 계산했습니다. 부호가 번갈아 나오는 매클로린 급수와 달리 빼기가 없어 상쇄가 생기지 않습니다.
정규분포의 꼬리 확률도 1 − Φ(z)로 구하면 같은 이유로 무너집니다. 6σ 바깥 확률 Q(6)은 9.87×10⁻¹⁰인데 1 − Φ(6)으로 구하면 유효숫자가 7자리쯤 남고, 9σ면 아예 0이 됩니다. 품질관리의 시그마 수준이나 통신의 비트오류율처럼 아주 작은 확률을 다룰 때는 ½·erfc(z/√2)로 곧장 구해야 합니다.
erf는 확산과 열전도의 답으로도 나옵니다. 표면 온도가 갑자기 바뀐 반무한 고체의 온도는 깊이 x, 시간 t에서 erfc(x/(2√(αt)))에 비례하고, 반도체에 불순물을 확산시킬 때의 농도 분포도 같은 꼴입니다. 확산이 얼마나 들어갔는지는 결국 «√(αt)에 견준 깊이»로만 정해진다는 뜻이라, 시간을 4배 늘려야 깊이가 2배가 됩니다.
erf는 초등함수로 적을 수 없습니다. e^(−t²)의 부정적분이 다항식·지수·로그·삼각함수의 조합으로는 표현되지 않는다는 것이 리우빌의 정리로 증명되어 있습니다. 그래서 이름을 따로 붙여 «오차함수»라 부르고, 값은 급수나 연분수로 구합니다. 적분표에 실린 특수함수 대부분이 같은 사정입니다.

계산 방법

  1. 1x에 값을 넣으면 erf(x)와 erfc(x)가 바로 나옵니다.
  2. 2x를 4 이상으로 올려 보면 «1 − erf로 구한 값»이 참값에서 벗어나기 시작합니다.
  3. 3x를 6 이상으로 올리면 1 − erf가 아예 0이 되어 버리는 것을 볼 수 있습니다.
  4. 4정규분포 꼬리 확률이 필요하면 Φ(x)와 Q(x) 행을 봅니다. x를 z값으로 넣으면 됩니다.

자주 묻는 질문

erf(x) = 2/√π ∫₀ˣ e^(−t²)dt로 정의되는 함수입니다. 종 모양 곡선 e^(−t²) 아래 넓이를 0부터 x까지 잰 것에 전체 넓이가 1이 되도록 2/√π를 곱한 값이라, 0에서 0이고 x가 커지면 1로 다가갑니다. 초등함수(다항식·지수·삼각함수의 조합)로는 적을 수 없어 급수나 연분수로 계산해야 합니다.

큰 x에서 유효숫자가 통째로 날아가기 때문입니다. erf(6)은 0.99999999999999998인데 배정밀도 실수는 1 근처에서 약 10⁻¹⁶ 간격으로만 값을 담을 수 있어, 1에서 빼면 남는 자릿수가 없습니다. 실제로 이 계산기에 x = 6을 넣으면 1 − erf가 정확히 0이 되는 것을 볼 수 있습니다. 그래서 erfc는 처음부터 자기 자신의 식(연분수)으로 따로 계산합니다.

표준정규분포의 누적분포는 Φ(z) = ½(1 + erf(z/√2))입니다. 정규분포의 밀도가 e^(−z²/2)라 erf의 e^(−t²)와 √2만큼 축척이 다를 뿐 같은 적분이기 때문입니다. 상측 꼬리 확률은 Q(z) = ½·erfc(z/√2)로 구하는데, 1 − Φ(z)로 구하면 z가 클 때 같은 상쇄 문제가 생깁니다.

erfcx(x) = e^(x²)·erfc(x)로, erfc에서 급격히 작아지는 부분을 떼어낸 값입니다. erfc(x)는 x가 27쯤부터 배정밀도가 담을 수 있는 최소값 아래로 내려가 0이 되어 버리지만, erfcx는 x가 커져도 1/(x√π)로 천천히 줄어들 뿐이라 언더플로가 없습니다. 이 계산기가 erfc가 0으로 뭉개진 뒤에도 log₁₀ erfc를 낼 수 있는 것은 erfcx를 함께 계산하기 때문입니다.

|x| < 1.5에서는 항이 전부 양수인 급수를, 그 이상에서는 연분수를 씁니다. 흔히 쓰는 매클로린 급수는 부호가 번갈아 나와 x가 커지면 큰 항끼리 빼면서 정밀도를 잃으므로, 여기서는 erf(x) = 2/√π·e^(−x²)·Σ 2ⁿx^(2n+1)/(1·3···(2n+1))라는 동치 급수를 씁니다. 큰 x에서는 연분수를 수정 렌츠법으로 돌리는데 x가 클수록 빨리 수렴해 x = 5면 20회 안쪽에 끝납니다.

확산과 열전도의 해가 대표적입니다. 반무한 고체의 온도가 T(x,t) = T₀·erfc(x/(2√(αt)))로 적히고, 반도체 불순물 확산 농도도 같은 꼴입니다. 통신에서 비트오류율, 통계에서 정규분포 꼬리 확률, 광학에서 빔 프로파일도 모두 이 함수로 표현됩니다.

상대오차 10⁻¹⁵ 안쪽입니다. 200자리 고정소수점으로 따로 계산한 값을 정답지로 삼아 테스트에 박아 두었고, erf(1) = 0.842700792949714869…, erfc(5) = 1.5374597944280348×10⁻¹² 같은 널리 인용되는 값과 일치합니다. 다만 이것은 «erfc를 제 식으로 구했을 때»의 이야기이고, 1 − erf로 구한 값은 x가 커질수록 자릿수를 잃습니다.

전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지며 입력한 값은 이 기기에만 남습니다.

알아두면 좋은 점

  • erf는 홀함수라 erf(−x) = −erf(x)이고, erfc(−x) = 2 − erfc(x)입니다. 음수 쪽은 2에 붙으므로 상쇄가 생기지 않습니다.
  • x가 약 27을 넘으면 erfc(x)가 배정밀도의 표현 범위를 벗어나 0으로 표시됩니다. 그때는 erfcx와 log₁₀ erfc 행을 보십시오.
  • 복소수 인수는 다루지 않습니다. 실수 x에 대해서만 계산합니다.
  • 역함수 erf⁻¹은 이 계산기에 없습니다. 확률에서 z값을 거꾸로 구하려면 z점수 계산기를 쓰십시오.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.