다항식 값 계산기 쉽게 이해하기 — 개념과 원리
이 계산기는 다항식 p(x) = a₀xⁿ + a₁xⁿ⁻¹ + … + aₙ과 그 도함수 p′(x)의 값을 원하는 x에서 구합니다. 계수는 최고차항부터 상수항까지 차례로 넣습니다. 다항식의 값 계산은 근 확인, 그래프 그리기, 보간, 테일러 근사, 물리 공식, 그리고 매 단계 p(x)와 p′(x)가 모두 필요한 뉴턴 방법의 기본이 됩니다.
계산 방법
호너의 방법은 다항식을 곱셈이 겹겹이 들어간 꼴로 바꿉니다.
p(x) = (…((a₀x + a₁)x + a₂)x + …)x + aₙ
s = 0에서 시작해 계수마다 s ← s·x + 계수를 반복하면 마지막 s가 p(x)입니다.
도함수는 aₖxᵐ을 m·aₖxᵐ⁻¹로 바꾸는 미분법을 써서, 상수항을 뺀 각 계수에 차수를 곱한 뒤 같은 호너의 방법으로 값을 구합니다.
원리
보통 방식으로 계산하면 x의 거듭제곱을 따로따로 구해야 합니다. 호너의 방법은 앞 단계 결과를 다시 쓰므로 곱셈 n번과 덧셈 n번이면 충분하고, 반올림 오차도 줄어듭니다. 중간에 나오는 s 값들은 조립제법의 몫의 계수와 같고, 마지막 값은 나머지입니다. 나머지정리에 따라 p(x)를 (x − x₀)로 나눈 나머지는 p(x₀)이므로, 호너의 방법은 곧 조립제법으로 함숫값을 구하는 것입니다.
예제 풀이
- 입력값: 계수 2 −3 0 5, 즉 p(x) = 2x³ − 3x² + 5이고 x = 2입니다.
- p의 호너 계산: s = 2, s = 2·2 − 3 = 1, s = 1·2 + 0 = 2, s = 2·2 + 5 = 9이므로 p(2) = 9입니다.
- 직접 확인: 2·8 − 3·4 + 5 = 9입니다.
- 도함수 계수: 2·3 = 6, −3·2 = −6, 0·1 = 0이므로 p′(x) = 6x² − 6x입니다.
- p′의 호너 계산: s = 6, s = 6·2 − 6 = 6, s = 6·2 + 0 = 12이므로 p′(2) = 12입니다.
| x | p(x) |
|---|---|
| 0.5 | 4.5 |
| 1 | 4 |
| 1.5 | 5 |
| 2 | 9 |
| 2.5 | 17.5 |
| 3 | 32 |
| 4 | 85 |
결과 해석
p(x)는 x에서 그래프의 높이이고, p′(x)는 그 점에서 접선의 기울기입니다. 양수면 증가, 음수면 감소, 0이면 극대·극소이거나 평평한 점일 수 있습니다. 예제의 그래프는 점 (2, 9)를 지나며 기울기 12로 증가합니다. p(x) = 0이면 x는 근입니다. 또한 중간값 2, 1, 2로부터 p(x) = (x − 2)(2x² + x + 2) + 9임을 알 수 있습니다.
흔한 실수
- 0인 계수를 빠뜨리는 경우(2x³ − 3x² + 5는 x항이 없으므로 0을 넣어야 합니다)
- 상수항부터 거꾸로 입력하는 경우
- 상수항의 미분이 0이라는 점을 잊는 경우
자주 묻는 질문
거듭제곱을 직접 계산하지 않고 호너의 방법을 쓰는 이유는 무엇인가요?
곱셈 횟수가 적어 빠르고, 대개 더 정확하기 때문입니다.
x에서의 접선의 방정식은 어떻게 구하나요?
y = p(x₀) + p′(x₀)(x − x₀)입니다. 예제에서는 y = 9 + 12(x − 2) = 12x − 15입니다.
이계도함수도 구할 수 있나요?
도함수의 계수(예제에서는 6 −6 0)를 새 다항식으로 넣으면 그 p′이 이계도함수 값입니다.
출처: D. E. Knuth, The Art of Computer Programming, Vol. 2, §4.6.4 · 교육부, 수학과 교육과정(고등학교 '다항식의 연산', 나머지정리와 조립제법)