따라서 P(2) = 5입니다. 직접 계산(8 - 12 + 4 + 5 = 5)과 일치합니다.
직접 계산과의 연산 횟수 비교
직접 계산 방식은 x², x³, …를 각각 따로 구해야 합니다. x² = x · x, x³ = x² · x와 같이 진행하면 n차 다항식에 최대 n(n+1)/2번의 곱셈이 필요합니다. 호너의 방법은 중간 결과를 재사용하여 곱셈 횟수를 정확히 n번으로 줄이며, 이론적으로 이보다 적은 곱셈으로 다항식을 평가하는 알고리즘은 존재하지 않습니다.
차수
직접 계산(곱셈 횟수)
호너의 방법(곱셈 횟수)
2
3
2
5
15
5
10
55
10
20
210
20
연산 횟수의 차이는 수치적 안정성과도 연결됩니다. 직접 계산에서는 x의 거듭제곱이 커질수록 중간값이 크게 증가하여 계수 크기 차이가 클 때 소거 오차(catastrophic cancellation)가 발생할 수 있습니다. 호너의 방법은 이러한 큰 중간값을 피할 수 있어 수치적으로 더 안정적입니다.
계수 입력 방법
최고차항의 계수부터 상수항까지 차례로 쉼표로 구분하여 입력합니다. 해당 차수의 항이 없더라도 반드시 0을 포함해야 합니다. 0을 생략하면 나머지 계수가 모두 한 차수씩 틀어집니다.
호너의 방법(Horner's method, 호너의 알고리즘)은 다항식 P(x) = aₙxⁿ + aₙ₋₁xⁿ⁻¹ + … + a₁x + a₀를 중첩된 곱의 형태 P(x) = (…((aₙ · x + aₙ₋₁) · x + aₙ₋₂) · x + … + a₁) · x + a₀로 재구성하는 알고리즘입니다. 각 단계에서 누산값에 x를 곱한 뒤 다음 계수를 더하는 방식으로, n차 다항식을 정확히 n회의 곱셈과 n회의 덧셈으로 계산합니다. 이는 이론상 최소 연산 횟수입니다.
호너의 방법이 직접 계산보다 효율적인 이유는 무엇입니까?
직접 계산 방식에서는 x², x³, …를 각각 별도로 계산해야 하므로 n차 다항식에 최대 n(n+1)/2회의 곱셈이 필요합니다. 호너의 방법은 중간 결과를 재사용하여 곱셈 횟수를 정확히 n회로 줄입니다. 예를 들어 20차 다항식의 경우, 직접 계산은 최대 210회의 곱셈이 필요하지만 호너의 방법은 20회면 충분합니다. 또한 중간 계산에서 발생하는 큰 값을 피할 수 있어 수치적 안정성도 우수합니다.
호너의 방법으로 미분값도 구할 수 있습니까?
예. 조립제법(합성나눗셈)은 호너의 방법과 동일한 알고리즘으로, P(x)를 일차식 (x - c)로 나눌 때의 몫과 나머지를 동시에 구합니다. 나머지는 P(c)이고, 몫 다항식 Q(x)는 항등식 P(x) = (x - c)Q(x) + P(c)를 만족하며, Q(c) = P'(c)가 성립합니다. 따라서 호너의 방법을 한 번만 실행하면 P(c)와 P'(c)를 동시에 얻을 수 있습니다.
계수를 어떻게 입력해야 합니까?
최고차항의 계수부터 상수항까지 차례로 쉼표로 구분하여 입력합니다. 해당 차수의 항이 없더라도 0을 반드시 포함해야 합니다. 예시: x³ - 3x² + 2x + 5는 "1, -3, 2, 5", 2x⁴ - 7은 "2, 0, 0, 0, -7", 상수 4는 "4". 차수는 입력한 값의 개수에서 1을 뺀 값과 같습니다.