[python] SymPy를 사용하여 실수방정식 근의 성질 확인하기

실수방정식이 주어졌을 때, 근의 성질을 확인하고 싶은 경우가 있습니다. 이러한 경우에는 파이썬의 SymPy 라이브러리를 사용하면 편리합니다. SymPy는 기호 연산을 지원하는 파이썬 패키지로, 방정식의 근을 계산하고 그 성질을 확인하는 기능을 제공합니다.

다음은 SymPy를 사용하여 실수방정식의 근의 성질을 확인하는 예제 코드입니다.

from sympy import symbols, Eq, solve, Interval

# 심볼 변수 선언
x = symbols('x')

# 실수방정식
equation = Eq(x**2 - 5*x + 6, 0)

# 방정식의 근 계산
solutions = solve(equation, x)

# 근의 성질 확인
for solution in solutions:
    interval = Interval(-float('inf'), float('inf'))

    if interval.contains(solution) and solution.is_real:
        print(f"근 {solution}은 실수입니다.")
    elif solution.is_real:
        print(f"근 {solution}은 실수 범위에 속하지 않습니다.")
    else:
        print(f"근 {solution}은 복소수입니다.")

위 코드는 x^2 - 5x + 6 = 0 형태의 실수방정식을 예로 들고 있습니다. SymPy의 symbols 함수를 사용하여 기호 변수 x를 선언하고, Eq 함수를 사용하여 방정식을 정의합니다. 그런 다음 solve 함수를 사용하여 방정식의 근을 계산합니다.

계산된 근들의 성질을 확인하기 위해 Interval 클래스를 사용하여 실수 범위를 지정합니다. 이후 반복문을 통해 계산된 근을 하나씩 확인하고, is_real 메소드를 사용하여 실수인지 복소수인지를 판별합니다. 예제 코드에서는 실수인 경우에만 근의 값과 성질을 출력하도록 구현되어 있습니다.

실행 결과로는 각 근이 실수인지, 실수 범위에 속하는지, 혹은 복소수인지가 출력됩니다.

참고 자료