04 · 다항식: 계수열과 Sturm 수열
다항식: 계수열과 Sturm 수열¶
유한 계수열로 다항식을 만들고 정확한 유리수 연산으로 실근을 셉니다.
이 장을 읽기 전에
유리수 연산을 정수와 자연수 정의까지 추적할 수 있습니다.
이 장을 마치면
- ‘다항식: 계수열과 Sturm 수열’의 수학적 정의를 자신의 말로 설명하기
- 그 정의가 Python 데이터로 표현되는 방법 찾기
- 실제 코드에서 작은 실행 과정을 예측하기
수학적 정의
`(a₀,a₁,…)`은 `x⁰,x¹,…`의 계수입니다. Sturm 정리는 부호 변화 수의 차이로 서로 다른 실근 수를 구합니다.
데이터 표현
`Polynomial`은 상수항부터 계수를 저장하고 끝의 0을 제거해 유일한 표현을 만듭니다.
Python 구현
`(a₀,a₁,…)` → `Polynomial`; `#roots` → `sturm_sequence`
함께 읽을 구현과 테스트
수학적 정의
수학적 정의¶
(a₀,a₁,…)은 x⁰,x¹,…의 계수입니다. Sturm 정리는 부호 변화 수의 차이로 서로 다른 실근 수를 구합니다.
데이터 표현
데이터 표현¶
Polynomial은 상수항부터 계수를 저장하고 끝의 0을 제거해 유일한 표현을 만듭니다.
Python 구현
Python 구현¶
evaluate는 값을 계산하고 sturm_sequence는 음의 나머지를 이어 가며 count_real_roots는 양 끝의 부호 변화를 비교합니다.
이 강의에서 사용하는 정확한 대응:
실행 과정
실행 과정¶
x²-2는 1에서 음수, 2에서 양수여서 다음 장의 고립 구간을 준비합니다.
실행 전 예측
두 부호를 예측하고 부호 변화만으로 근이 정확히 하나임을 증명할 수 있는지 판단하세요.
실험 · 다항식: 계수열과 Sturm 수열
실행 전
⌘ / Ctrl + Enter
출력
먼저 예측을 적고 실행하세요.
테스트로 확인
테스트로 확인¶
테스트는 정규화, 평가, 나눗셈, 알려진 근 수를 확인하며 유일성에는 Sturm 계산이 필요합니다.
범위와 한계
범위와 한계¶
유리계수 일변수 다항식만 다루며 중근과 끝점 근에는 명확한 규약이 필요합니다.