MCP로 연결 →

계산 입력

공식

공식: 핼리 방법 근 찾기 계산기

광고

결과

근사 근 x (f(x) = 0)
0.7390851332151607
핼리 방법으로 구함
사용된 반복 횟수 3
최종 잔차 f(x) 0.0
상태 Converged

핼리 방법이란?

핼리 방법(Halley's method)은 f(x) = 0 형태의 방정식을 푸는 반복적 수치해석 기법입니다. 뉴턴-랩슨(Newton-Raphson) 방법과 가까운 친척 격이지만, 수렴 차수가 3차(3차 수렴)라는 점이 다릅니다. 뉴턴법이 함수와 1차 도함수만 사용하는 반면, 핼리 방법은 여기에 2차 도함수까지 활용하기 때문에 같은 정확도에 도달하는 데 일반적으로 더 적은 반복 횟수가 필요합니다. 이 도구는 특정 국가에 국한되지 않는 보편적인 수학·수치해석 계산기로 어디서나 동일하게 사용할 수 있으며, 삼각함수 안의 각도는 라디안(radian)으로 해석합니다.

곡선 f(x)가 근에서 x축과 교차하고, 연속된 반복 점들이 그 근으로 수렴하는 모습
핼리법은 f(x)=0이 되는 근에 수렴할 때까지 추정값을 반복적으로 다듬습니다.

사용 방법

근을 구하고 싶은 함수를 \(f(x)\)에 입력한 뒤, 그 1차 도함수 \(f'(x)\)와 2차 도함수 \(f''(x)\)를 \(x\)에 대한 식으로 각각 넣어 주세요. 지원하는 표기법으로는 거듭제곱을 위한 +, -, *, /, ^, 괄호, 그리고 sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, exp, log/ln, log10, sqrt, abs 같은 함수와 상수 pi, e가 있습니다. 찾으려는 근에 가까운 초기 추정값 \(x_0\)를 정하고, 최대 반복 횟수 \(n\)과 표시할 유효숫자 자릿수를 선택하면 됩니다.

공식 풀이

매 단계마다 $$x_{n+1} = x_n - \frac{2\,f(x_n)\,f'(x_n)}{2\,[f'(x_n)]^2 - f(x_n)\,f''(x_n)}$$ 를 계산합니다. 분자는 기존 뉴턴 보정항(을 배율 조정한 형태)이고, 분모에 추가된 \(- f(x_n)\,f''(x_n)\) 항이 함수 \(f\)의 곡률을 보정해 주어 수렴을 가속합니다. 반복은 \(x\)의 변화량이나 잔차 \(f(x)\)가 아주 작은 허용오차 아래로 내려가거나, 반복 한도에 도달하면 멈춥니다. 만약 분모가 0이 되면 방법이 작동하지 않으므로, 다른 \(x_0\) 값으로 다시 시도해야 합니다.

광고
한 점에서 함수를 근사하는 접선과 곡률을 가진 접촉 곡선을 보여주는 도식
핼리법은 기울기 \(f'(x)\)와 곡률 \(f''(x)\)를 모두 사용해, 직선 접선보다 함수에 더 밀착하는 곡선을 맞춥니다.

계산 예시

\(f(x) = x - \cos(x)\), \(f'(x) = 1 + \sin(x)\), \(f''(x) = \cos(x)\)에서 \(x_0 = 1\)로 시작해 보겠습니다. 첫 단계는 $$x_1 = 1 - \frac{2 \times 0.4596977 \times 1.8414710}{2 \times 1.8414710^2 - 0.4596977 \times 0.5403023} = 1 - \frac{1.6930504}{6.5336550} = 0.7408769$$ 가 됩니다. 이후 반복은 빠르게 도티 수(Dottie number) \(x = 0.7390851332151607\)로 수렴하는데, 이는 \(x = \cos(x)\)의 유일한 해입니다.

자주 묻는 질문

핼리 방법은 뉴턴법과 어떻게 다른가요? 뉴턴법은 곡률을 고려하지 않지만, 핼리 방법은 2차 도함수 항을 더해 2차 수렴이 아닌 3차 수렴을 달성합니다. 그 결과 정확한 자릿수 하나를 얻는 데 보통 더 적은 반복이 필요합니다.

왜 도함수를 직접 입력해야 하나요? 이 계산기는 사용자가 입력한 도함수를 그대로 신뢰합니다. 도함수가 틀리면 수렴이 나빠지거나 실패합니다. \(f(x)\)를 신중하게 미분해 \(f'(x)\)와 \(f''(x)\)를 정확히 구해 입력하세요.

수렴하지 않으면 어떻게 하나요? 이 방법은 \(x_0\)에 가장 가까운 근을 찾습니다. 시작점이 좋지 않으면 발산하거나 다른 근으로 빠질 수 있고, 분모가 0이 되면 계산이 완전히 멈춥니다. 이럴 때는 \(x_0\)를 바꾸거나 도함수 식을 다시 확인해 보세요.

최종 업데이트: