import numpy as np
import matplotlib.pyplot as plt
from tkinter import *
from tkinter import messagebox
# 가우시안 근사로 델타 함수 구현
def delta_approx(x, epsilon):
return (1 / (np.sqrt(2 * np.pi) * epsilon)) * np.exp(-x**2 / (2 * epsilon**2))
# 델타 함수 근사값 계산 및 출력 함수
def plot_delta():
try:
epsilon = float(epsilon_entry.get()) # 사용자 입력값을 가져옴
if epsilon <= 0:
messagebox.showerror("Error", "Epsilon 값은 0보다 커야 합니다.")
return
x = np.linspace(-1, 1, 1000)
y = delta_approx(x, epsilon)
plt.plot(x, y)
plt.title(f"Gaussian Approximation of Delta Function (epsilon = {epsilon})")
plt.xlabel("x")
plt.ylabel("delta(x)")
plt.grid(True)
plt.show()
except ValueError:
messagebox.showerror("Error", "올바른 숫자를 입력하세요.")
# tkinter GUI 설정
root = Tk()
root.title("Delta Function Approximation")
# 설명 레이블
Label(root, text="가우시안 분포로 델타 함수 근사", font=("Arial", 14)).pack(pady=10)
# epsilon 입력 필드 레이블
Label(root, text="epsilon 값을 입력하세요 (0보다 큰 값):", font=("Arial", 12)).pack(pady=5)
# epsilon 입력 필드
epsilon_entry = Entry(root, width=20, font=("Arial", 12))
epsilon_entry.pack(pady=5)
# 버튼
plot_button = Button(root, text="Delta 함수 그래프 그리기", font=("Arial", 12), command=plot_delta)
plot_button.pack(pady=20)
# GUI 실행
root.mainloop()
'정보통신기술(ICT)' 카테고리의 다른 글
역삼각 함수 (0) | 2024.10.10 |
---|---|
쌍곡 함수 (1) | 2024.10.08 |
시그모이드 함수 (0) | 2024.10.04 |
로그 함수 (0) | 2024.10.02 |
부산의 연간 강수량 예측(1904년 ~ 2023년) (1) | 2024.10.01 |