SymPy를 이용한 다항식 계산, 미분, 적분

Python에서는 sympy 라는 라이브러리를 사용해서 다항식(polynomial) 연산을 쉽게 할 수 있습니다.
  • SymPy는 기호 계산을 할 수 있는 라이브러리입니다.
  • 복잡한 수식을 간단하게 만들거나, 방정식을 풀거나, 미분·적분 같은 수학 계산이 가능합니다.
기 능 함 수 설 명
전개 sympy.expand() 곱셈을 전개
정리 sympy.simplify() 수식을 간단히 정리
인수분해 sympy.factor() 다항식의 인수분해
미분 sympy.diff() 도함수 계산
적분 sympy.integrate() 부정/정적분 계산
대입 sympy.subs() 변수에 값을 대입하여 계산

1. 기호(symbol) 정의

# 수학 기호 'x' 선언

x = sympy.Symbol('x')
# 여러 기호를 한 번에 선언

x, y, z = sympy.symbols('x y z')

2. 다항식 만들기

poly1 = x**2 + 2*x + 1
poly2 = x**2 - 4
Tip:
  • 곱하기 기호는 반드시 포함

3. 다항식 연산

# 다항식의 덧셈
result1 = poly1 + poly2

# 다항식의 곱셈
result2 = poly1 * poly2

# 다항식 전개
expanded = sympy.expand(result2)

# 다항식 정리
simplified = sympy.simplify(expanded)

4. 인수분해

factored = sympy.factor(x**2 + 2*x + 1)  

# 결과: (x + 1)**2

5. 다항식 값 대입하여 계산

value = poly1.subs(x, 3)  # x=3 대입

# 결과: 3**2 + 2*3 + 1 = 16

6. 미분 (diff)

f = x**3 + 3*x**2 + x + 1

# 도함수 (함수 f를 x에 대하여 미분)
df = sympy.diff(f, x)

# 결과: 3*x**2 + 6*x + 1

7. 적분 (integrate)

f = x**2 + 2*x + 1

# 부정적분
F = sympy.integrate(f, x)

# 결과: x**3/3 + x**2 + x
# 정적분 (구간 [a,b]에서 적분)
area = sympy.integrate(f, (x, 0, 2))

# 결과: 26/3