실수 다항식의 제로 카운터
- 업데이트 날짜:2025-07-30
- 3분 (읽기 시간)
시작과 끝으로 정의되는 실수 구간에서 실수 다항식 P(x)의 제로의 개수를 제로의 값을 결정하지 않고 계산합니다.

입력/출력
P(x)
—
P(x)는 다항식을 나타내는 배열입니다. 이 배열의 첫번째 원소는 P(x)의 상수 계수를 가리킵니다.
시작
—
시작은 간격의 가장 왼쪽 포인트입니다. 기본값은 0.0입니다.
끝
—
끝은 간격의 가장 오른쪽 포인트입니다. 기본값은 0.0입니다.
제로의 개수
—
제로의 개수는 P(x)의 (시작, 끝) 간격에 있는 정확한 제로의 개수입니다.
에러
—
에러는 VI로부터 모든 에러 또는 경고를 반환합니다. 시작 > 끝일 때, 어플리케이션은 그것을 에러로 해석합니다. 에러를 [에러 코드를 에러 클러스터로] VI에 연결하여 에러 코드 또는 경고를 에러 클러스터로 변환할 수 있습니다. |
이 VI는 스텀 알고리즘을 사용하여 0의 수를 계산합니다. 슈투름 알고리즘은 두 가지 경우를 처리합니다. p(x) 가 x의 실수 다항식이며 p'(x) 가 p(x)의 도함수라고 가정합니다. d(x)가 p(x)와 p'(x)의 최대공약수를 나타내는 경우,
d(x) = gcd(p(x), p´(x))따라서 d(x)가 비상수 다항식인 경우, p(x)는 여러 개의 제로를 가집니다. 즉, 다항식 p(x)/d(x)는 하나의 제로만을 가집니다.
이 개념을 반복하여, 다항식 p(x)를 각각 하나의 실수 제로를 가지는 단순한 다항식의 곱으로 결합할 수 있습니다. p(x)의 제로 개수는 하나의 제로만을 가진 단순한 다항식의 모든 제로의 합계와 같습니다.
하나의 제로 프로퍼티를 가지는 실수 다항식 p(x)의 제로 수를 결정하기 위해서, 다음 유클리드 알고리즘을 사용합니다.
p(x) =q1(x)p1(x) -p2(x) p1(x) =q2(x)p2(x) -p3(x) ⋮ pr - 2(x) =qr - 1(x)pr - 1(x) - pr(x)다음 슈투름 체인은
(p(x), p1(x), …, pr(x))두 값 W(시작)과 W(끝)을 결정합니다. W(x)는 체인의 부호 변경 횟수입니다.
(p(x), p1(x), …, pr(x))p(x)의 제로 수는 W(끝)-W(시작)과 정확히 일치합니다.
실수 다항식의 모든 실수 0에 관심이 있다면 다음을 선택합니다
start = -max{(|a0|+ ... +|an-1|)/|an|, 1}
끝 = max{(|a0|+ ... +|an-1|)/|an|, 1}
여기서a0,a1, ..., an 은 다항식의 원소입니다.
P(x)
—
시작
—
제로의 개수
—