26 |
新方式によるPUAの導出 (8) |
ChatGPTにより $Q_{\text{exact},n}(t)$と$Q_\text{approx}(t)$のグラフ作成プログラムを作成してもらいました。そのリストを示します。
import numpy as np import matplotlib.pyplot as plt lambdaVal = 0.1 # 故障率 tau = 2 # 点検期間 K = 0.5 # 修復率 def F(t): """Cumulative distribution function.""" return 1 - np.exp(-lambdaVal * t) def Q_n(t, n): """Corrected recursive function for Q_n.""" if n == 0: return F(t) else: tau_n = n * tau tau_n_minus_1 = (n - 1) * tau return def Q_approx(t): """Approximation for Q.""" u = t % tau return (1 - K) * F(t) + K * F(u) # Generate t values and calculate Q values t_range = np.linspace(0, 10*tau, 1000) Q_exact_values = [Q_n(t, int(np.floor(t / tau))) for t in t_range] Q_approx_values = [Q_approx(t) for t in t_range] # Font sizes fontsize_axes_label = 20 * 1.8 fontsize_ticks = 16 * 1.8 fontsize_legend = 20 * 1.8 # Plotting plt.figure(figsize=(18, 11)) plt.plot(t_range, Q_exact_values, label=f'$Q_{{\\text{{exact}},n}}(t)$ for $\\lambda = {lambdaVal}$', color='black') plt.plot(t_range, Q_approx_values, linestyle='--', label=f'$Q_{{\\text{{approx}}}}(t)$ for $\\lambda = {lambdaVal}$', color='black') ax = plt.gca() # Thickening spines for spine in ax.spines.values(): spine.set_linewidth(2.0) plt.xlabel('Time (t)', fontsize=fontsize_axes_label) plt.ylabel('$Q(t)$', fontsize=fontsize_axes_label) plt.xticks(np.arange(0, 11*tau, tau), fontsize=fontsize_ticks) plt.yticks(fontsize=fontsize_ticks) plt.legend(fontsize=fontsize_legend) plt.grid(True, color='gray', linestyle='-', linewidth=1.4) plt.ylim(bottom=0) plt.xlim(0, 10*tau) plt.show()
図762.1に実行結果を示します。これは論文に掲載したグラフの一部です。
なお、
に掲載しています。
なお、本稿はRAMS 2025に投稿予定のため一部を秘匿しています。