정보통신기술(ICT)

역 함수

해머슴 2024. 9. 20. 12:13
import tkinter as tk
from tkinter import messagebox
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

# 역함수를 그리는 함수
def plot_inverse_function():
    try:
        # 사용자로부터 입력을 받음
        input_expression = entry.get()

        # x 범위 설정
        x = np.linspace(-10, 10, 400)

        # 사용자가 입력한 수식을 계산
        y = eval(input_expression, {"x": x, "np": np})

        # 그래프 그리기
        fig, ax = plt.subplots()
        ax.plot(x, y, label=f'y = {input_expression}')
        ax.set_xlabel('x')
        ax.set_ylabel('y')
        ax.legend()

        # 캔버스를 tkinter 창에 삽입
        canvas = FigureCanvasTkAgg(fig, master=window)
        canvas.draw()
        canvas.get_tk_widget().pack()

    except Exception as e:
        messagebox.showerror("Error", f"잘못된 입력입니다: {e}")

# tkinter GUI 설정
window = tk.Tk()
window.title("역함수 그래프 그리기")

# 라벨과 입력 창
label = tk.Label(window, text="역함수 입력 (예: 1/x):")
label.pack()

entry = tk.Entry(window)
entry.pack()

# 그래프 그리기 버튼
button = tk.Button(window, text="그래프 그리기", command=plot_inverse_function)
button.pack()

# 창 실행
window.mainloop()

 

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

부등식 함수  (0) 2024.09.24
다차원 방정식 함수  (0) 2024.09.23
절대값 함수  (0) 2024.09.19
역삼각 함수  (0) 2024.09.13
합성 함수  (0) 2024.09.12