MCP로 연결 →

계산 입력

a0는 x^n의 계수(최고차항, 0이 아니어야 함)이고, 상수항은 a(n)입니다. 쓰지 않는 계수는 0으로 두면 됩니다.

공식

광고

결과

찾은 근의 개수
5
roots (real & complex) via Durand-Kerner
Value (re ± i·im)
x_1 2.6817925684442003E-15
x_2 1.3368995720865E-15
x_3 -1.5843433783877E-15
x_4 -2.1505841279553E-15
x_5 1.1330769043639002E-16

이 해법기가 하는 일

N차 다항식 방정식 해법기는 실수 계수를 가진 다항식 방정식 \(a_0 x^{n} + a_1 x^{n-1} + \cdots + a_{n-1} x + a_n = 0\) 의 모든 근(실근과 복소근)을 구합니다. 사용하는 알고리즘은 두랜드-커너(Durand-Kerner) 방법으로, 바이어슈트라스(Weierstrass) 방법이라고도 불리며 DKA(두랜드-커너-아베르트) 계열의 기초가 됩니다. 이 방법은 모든 근의 추정값을 동시에 다듬어 나가는 반복 기법입니다. 특정 국가나 단위에 얽매이지 않는 보편적인 수학 도구입니다.

다항식의 근을 점으로 표시한 복소평면, 켤레쌍 포함
다항식의 근은 복소평면 위의 점으로 나타나며, 복소근은 거울상 켤레쌍을 이룹니다.

계수 표기 규칙

이 도구는 계수를 최고차항부터 매깁니다. 즉 \(a_0\)가 \(x^{n}\)의 계수(최고차항 계수이며 반드시 0이 아니어야 함)이고 \(a_n\)이 상수항입니다. 이는 교과서에서 흔히 쓰는 "\(a_k\)가 \(x^k\)의 계수"라는 규칙과 반대 순서이므로, 이에 맞춰 계수를 입력하세요. \(n\)보다 큰 번호의 계수는 무시됩니다.

사용 방법

차수 \(n\)(1~16)을 선택하고 \(a_0\)부터 \(a_n\)까지 계수를 입력합니다(쓰지 않는 계수는 0으로 두면 됩니다). 표시할 유효숫자 자릿수를 고른 뒤 실행하세요. 실근은 허수부가 0인 값으로 나타나며, 실수 계수 다항식의 복소근은 켤레쌍(\(\text{re} + i\cdot\text{im}\) 과 \(\text{re} - i\cdot\text{im}\))으로 나타납니다.

광고

계산 공식

먼저 모든 계수를 \(a_0\)로 나누어 최고차항 계수가 1인 모닉 다항식 \(p(x)=x^{n}+b_1 x^{n-1}+\cdots+b_n\) 으로 만듭니다. 그런 다음 각 추정값을 다음과 같이 갱신합니다.

$$z_i \leftarrow z_i - \frac{p(z_i)}{\displaystyle\prod_{j \ne i}(z_i - z_j)}$$

원 둘레에 서로 다른 시작점을 흩뿌려 놓으면, 추정값들이 동시에 \(n\)개의 근으로 수렴합니다.

원 위의 초기 추정값이 실제 근으로 수렴하는 두란트-케르너 반복의 도식
DKA 방법은 모든 근의 추정값을 원 위에 배치하고 수렴할 때까지 동시에 갱신합니다.

예제 풀이

$$x^3 - 6x^2 + 11x - 6 = 0$$ 을 풀려면 \(n=3\), \(a_0=1\), \(a_1=-6\), \(a_2=11\), \(a_3=-6\) 을 입력합니다. 이 다항식은 \((x-1)(x-2)(x-3)\)로 인수분해되며, 반복 계산은 근 1, 2, 3(모두 실근)으로 수렴합니다.

광고

자주 묻는 질문

\(a_0\)가 0이면 안 되는 이유는? 최고차항 계수가 0이면 그 방정식은 사실상 \(n\)차가 아닙니다. 따라서 이 도구는 \(a_0=0\)을 잘못된 입력으로 처리합니다.

복소근이 쌍으로 나오는 이유는? 실수 계수를 가진 다항식의 복소근은 항상 켤레쌍을 이룹니다. 그래서 \(+i\cdot\text{im}\) 과 \(-i\cdot\text{im}\) 이 짝을 이루는 값을 보게 됩니다.

중근(중복되는 근)도 처리되나요? 네, 처리됩니다. 다만 중근은 수렴 속도가 더 느리기 때문에, 이 해법기는 충분히 많은 반복 횟수와 다소 느슨한 허용오차를 사용합니다. 아주 작은 허수부 잔차는 0으로 정리됩니다.

최종 업데이트: