정보통신기술(ICT)

델타 함수

해머슴 2024. 10. 7. 12:27
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