정보통신기술(ICT)

유리 함수

해머슴 2024. 9. 5. 10:59
import sympy as sp
import matplotlib.pyplot as plt
import numpy as np

def main():
    # 사용자로부터 분자와 분모 입력 받기
    numerator = input("분자 일차 함수 입력하세요 (예: 2*x + 1): ")
    denominator = input("분모 이차 함수 입력하세요 (예: x**2 - 1): ")

    # sympy를 사용하여 입력된 문자열을 표현식으로 변환
    x = sp.Symbol('x')
    P = sp.sympify(numerator)
    Q = sp.sympify(denominator)

    # 유리 함수 정의
    rational_function = P / Q

    # 함수 그래프를 그리기 위한 numpy 배열 생성
    f_lambdified = sp.lambdify(x, rational_function, modules='numpy')
   
    # x 값의 범위 설정
    x_vals = np.linspace(-10, 10, 400)
    y_vals = f_lambdified(x_vals)

    # 그래프 그리기
    plt.figure(figsize=(10, 6))
    plt.plot(x_vals, y_vals, label=str(rational_function))
    plt.axhline(0, color='black',linewidth=0.5)
    plt.axvline(0, color='black',linewidth=0.5)
    plt.title("유리 함수 그래프")
    plt.xlabel("x")
    plt.ylabel("f(x)")
    plt.grid(True)
    plt.legend()
    plt.show()

# 함수 호출
if __name__ == "__main__":
    main()

'정보통신기술(ICT)' 카테고리의 다른 글

탄센트 함수  (0) 2024.09.09
코사인 함수  (0) 2024.09.06
로그 함수  (0) 2024.09.04
사인 함수  (0) 2024.09.03
3차 함수  (0) 2024.09.02