Recommended Posts

내가 만든 GPT가 생성한 수학교재 - 다항식의 연산

다항식의 연산: 덧셈·뺄셈·곱셈·나눗셈(나머지) 기초와 시각화

고등 수학 핵심 개념을 한 포스트로 정리합니다. 정리 → 예제 → SVG 수식/그래프 → 코드 예제 순으로 구성되어 있어 수업 자료나 블로그 게시에 바로 활용할 수 있습니다.

1) 다항식의 정의와 표기

다항식은 변수 x의 거듭제곱과 계수의 유한합으로 이루어진 식입니다. 일반형은 다음과 같습니다.

P(x) = a n x n + ··· + a 1 x + a 0
  • 차수 가장 높은 지수 n
  • 계수 각 항의 실수(또는 복소수) ak
  • 상수항 a0
  • 동류항 같은 차수의 항

2) 다항식의 덧셈과 뺄셈

동류항끼리 계수를 더하거나 빼면 됩니다.

(3x2 + 2x − 5) + (x2 − 7x + 1) = 4x2 − 5x − 4
결과설명
3 + 1 = 4계수 합
x2 − 7 = −5계수 차
상수항−5 + 1 = −4계수 합

3) 다항식의 곱셈

분배법칙(FOIL)과 일반 곱셈

각 항을 서로 곱해 동류항을 정리합니다.

( 2x + 3)( x − 4) = 2x2 − 8x + 3x − 12 = 2x2 − 5x − 12

항등식: 이항정리(선택적으로 소개)

(a + b)2 = a2 + 2ab + b2

4) 다항식의 나눗셈과 나머지

임의의 다항식 P(x)D(x)(단, deg D ≥ 1)에 대해,

P(x) = D(x)Q(x) + R(x), deg R < deg D

장항 나눗셈(롱 디비전) 또는 신속한 조립제법을 사용할 수 있습니다.

예시: 장항 나눗셈

(x³ − 6x² + 11x − 6) ÷ (x − 1)

x − 1 x³ − 6x² + 11x − 6 (x³ − x²) −5x² + 11x −5x (−5x² + 5x) 6x − 6 + 6 (6x − 6) ⇒ 몫 Q(x)=x²−5x+6, 나머지 0

조립제법(인수 x−r)

계수를 내려쓰고 r을 곱해 더합니다. (예: r=1)

1 | 1 −6 11 −6 ↓ 1 −5 6 → 몫: 1, −5, 6 (즉 x²−5x+6), 나머지 0

5) 그래프로 보는 다항식

예: 이차함수 y = x² − 5x − 12

x y

인터랙티브: y = ax² + bx + c

1
-5
-12

정점 , 판별식

6) 연습 문제

  1. 다항식 A(x)=3x²−7x+2, B(x)=−2x²+5x−4. A±B를 구하라.
  2. (2x−1)(x+4)를 전개하라.
  3. P(x)=x³−4x²−x+4x−1로 나누어 몫과 나머지를 구하라.
  4. y=x³−3x의 그래프의 대칭성을 설명하라.
정답/해설 보기
  1. A+B = (3−2)x²+(−7+5)x+(2−4)= x²−2x−2
    A−B = (3+2)x²+(−7−5)x+(2+4)= 5x²−12x+6
  2. (2x−1)(x+4)= 2x²+8x − x − 4 = 2x²+7x−4
  3. 조립제법(1): 1 | 1 −4 −1 4 → 내려쓰기/곱셈/덧셈 결과: 몫 x²−3x−4, 나머지 0
  4. 홀함수 부분과 대칭성: y=x³−3x는 f(−x)=−f(x)이므로 원점 대칭.

7) 파이썬으로 다항식 계산·그래프 그리기(학습용)

아래 코드는 numpy 없이도 기본 계산이 가능하도록 작성되었습니다. 블로그 독자들이 쉽게 복사할 수 있도록 복사 버튼이 붙어 있습니다.

# 다항식 표현: 계수 리스트 [a_n, ..., a_1, a_0]

def pad_left(v, n):
    return [0]*(n-len(v)) + v

def poly_add(p, q):
    if len(p) < len(q): p = pad_left(p, len(q))
    if len(q) < len(p): q = pad_left(q, len(p))
    return [pi+qi for pi, qi in zip(p, q)]

def poly_sub(p, q):
    if len(p) < len(q): p = pad_left(p, len(q))
    if len(q) < len(p): q = pad_left(q, len(p))
    return [pi-qi for pi, qi in zip(p, q)]

def poly_mul(p, q):
    res = [0]*(len(p)+len(q)-1)
    for i, pi in enumerate(p):
        for j, qj in enumerate(q):
            res[i+j] += pi*qj
    return res

def poly_eval(p, x):
    # Horner
    v = 0
    for a in p:
        v = v*x + a
    return v

# 예시: (2x+3)(x-4)
p = [2, 3]   # 2x + 3
q = [1, -4]  # x - 4
print("곱:", poly_mul(p, q))  # [2, -5, -12] → 2x^2 - 5x - 12

# 간단 그래프(텍스트): -3..3 범위에서 값 평가
for x in range(-3, 4):
    print(x, poly_eval([2, -5, -12], x))
© 교육 포스트 · 다항식의 연산 정리

Comments