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