그래프 64

반데르발스 헤테르구조(Vanderwaals Heterostructures)

import tkinter as tkfrom tkinter import ttkimport matplotlib.pyplot as pltfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAggimport numpy as np# Van der Waals 힘을 계산하는 함수 정의def van_der_waals_force(distance, a=1.0, b=0.5):    # 간단한 반데르발스 힘 모델로 r^6 관계를 기반으로 계산    return -a / (distance**6) + b / (distance**12)# 그래프를 업데이트하는 함수 정의def update_graph():    try:        input_value = float(entry..

양자역학: 터널링 효과(Quantum Tunneling Effect)

import numpy as npimport matplotlib.pyplot as pltfrom tkinter import Tk, Label, Entry, Buttonfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAgg# 상수 정의hbar = 1.0545718e-34  # Reduced Planck's constant (J·s)m_e = 9.10938356e-31  # Electron mass (kg)# 터널링 확률 계산 함수def tunneling_probability(V0, E, a):    if E >= V0:        return 1  # 에너지가 잠재장벽보다 크면 100% 터널링    alpha = np.sqrt(2 * m_e * ..

상미분 방정식: 로렌츠 방정식(Lorenz Equations)

import numpy as npfrom scipy.integrate import odeintimport matplotlib.pyplot as pltfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAggimport tkinter as tk# 로렌츠 방정식 정의def lorenz(X, t, sigma, beta, rho):    x, y, z = X    dx_dt = sigma * (y - x)    dy_dt = x * (rho - z) - y    dz_dt = x * y - beta * z    return [dx_dt, dy_dt, dz_dt]# 그래프 그리기 함수def plot_lorenz(sigma, beta, rho, x0, y0, ..

양자역학: 입자상자 문제(Particle in a Box)

import tkinter as tkfrom tkinter import messageboximport matplotlib.pyplot as pltimport numpy as np# 에너지 계산 함수def calculate_and_plot_energy():    try:        length = float(entry_length.get())  # 상자 길이        mass = float(entry_mass.get())      # 입자 질량        max_n = int(entry_n.get())          # 최대 양자수        # 상자 속 입자의 에너지 계산 공식        h = 6.62607015e-34  # 플랑크 상수 (J*s)        n_values = np.ar..

열역학: 볼츠만 분포(Boltzmann Distribution)

import numpy as npimport matplotlib.pyplot as pltimport tkinter as tkfrom tkinter import simpledialog# 볼츠만 상수 (J/K)k_B = 1.380649e-23def boltzmann_distribution(energy, temperature):    # 볼츠만 분포 계산    return np.exp(-energy / (k_B * temperature))def plot_boltzmann_distribution(energy_range, temperature):    # 에너지 범위 생성    energies = np.linspace(0, energy_range, 500)    # 분포 계산    distribution = bo..

수리 물리학: 베셀 함수(Bessel Function)

import numpy as npimport matplotlib.pyplot as pltfrom scipy.special import jn, ynimport tkinter as tkfrom tkinter import ttkdef plot_bessel_functions(order, x_min, x_max, num_points):    """    주어진 범위에서 베셀 함수(Jn, Yn)를 플로팅합니다.        Parameters:    - order: 베셀 함수의 차수 (n 값)    - x_min: x 값의 최소 범위    - x_max: x 값의 최대 범위    - num_points: x 범위 내의 포인트 수    """    x = np.linspace(x_min, x_max, num_poin..

푸리에 변환(Fourier Transform)

import numpy as npimport matplotlib.pyplot as pltimport tkinter as tkfrom tkinter import ttkfrom tkinter import filedialogdef perform_fourier_transform(signal_freq, sampling_rate, save_result=False, output_filename="fft_result.png"):    # 샘플링 시간 생성    t = np.linspace(0, 1, sampling_rate, endpoint=False)        # 입력 신호 생성 (사인파)    signal = np.sin(2 * np.pi * signal_freq * t)        # 푸리에 변환 수행   ..