SymPy를 활용하여 상수항을 다루는 방법

SymPy는 파이썬에서 수학적인 심볼릭 연산을 수행할 수 있게 해주는 라이브러리입니다. 이를 활용하여 수식에서 상수항을 다루는 방법을 알아보겠습니다.

상수항을 다루는 메소드

SymPy에서는 다음과 같은 메소드들을 사용하여 상수항을 다룰 수 있습니다.

as_poly()

as_poly 메소드는 식을 다항식으로 변환합니다. 이때 상수항에 대한 정보를 얻을 수 있습니다.

from sympy import symbols, as_poly

x = symbols('x')
expr = x**2 + 3*x + 5
poly = as_poly(expr)
print(poly)

위 코드를 실행하면, Poly(x**2 + 3*x + 5, x, domain='ZZ')와 같은 출력을 얻을 수 있습니다. domain='ZZ'는 다항식의 계수가 정수임을 의미합니다.

coeff()

coeff 메소드는 다항식에서 특정 항의 계수를 반환합니다. 상수항의 계수를 구하는데 사용할 수 있습니다.

from sympy import symbols, poly

x = symbols('x')
expr = poly(x**2 + 3*x + 5)
coeff = expr.coeff(x, 0)
print(coeff)

위 코드를 실행하면 5라는 출력을 얻을 수 있습니다.

상수항을 다루는 예제

이제 실제로 SymPy를 활용하여 상수항을 다루는 예제를 살펴보겠습니다.

from sympy import symbols, as_poly, poly

x = symbols('x')
expr = x**2 + 3*x + 5

# 다항식으로 변환
poly_expr = as_poly(expr)

# 상수항의 계수 구하기
coeff = poly_expr.coeff(x, 0)

# 상수항을 10으로 대체
new_expr = poly_expr + (-coeff + 10)

print(new_expr)

위 코드를 실행하면 x**2 + 3*x + 15라는 결과가 나옵니다. poly_expr에는 원래의 다항식이 저장되어 있고, coeff에는 상수항의 계수인 5가 저장되어 있습니다. 따라서 new_expr는 5를 10으로 대체한 결과인 x**2 + 3*x + 15가 됩니다.

이처럼 SymPy를 활용하여 상수항을 다루는 것은 매우 간단하고 유용한 방법입니다. 만약 수학적인 심볼릭 연산을 자주 다루어야 한다면 SymPy는 필수적인 도구일 것입니다.


참고문헌: