29 lines
844 B
Python
29 lines
844 B
Python
import numpy as np
|
||||
|
|
import matplotlib.pyplot as plt
|
|||
|
|
from scipy.stats import beta
|
|||
|
|
|
|||
|
|
# 定义 Beta 分布的参数
|
|||
|
|
alpha = 2
|
|||
|
|
beta_param = 2 # 注意这里变量名不能与模块名beta重复,所以用beta_param
|
|||
|
|
|
|||
|
|
# 生成 x 值,Beta 分布的定义域是 [0, 1]
|
|||
|
|
# 我们生成一系列在 0 到 1 之间的点
|
|||
|
|
x = np.linspace(0.01, 0.99, 500) # 避免在0和1处logpdf可能趋向负无穷导致绘图问题,稍微避开边界
|
|||
|
|
|
|||
|
|
# 计算每个 x 值的 logpdf
|
|||
|
|
log_pdf_values = beta.logpdf(x, alpha, beta_param)
|
|||
|
|
|
|||
|
|
# 绘图
|
|||
|
|
plt.figure(figsize=(10, 6))
|
|||
|
|
plt.plot(x, log_pdf_values, label=f'logPDF of Beta(α={alpha}, β={beta_param})')
|
|||
|
|
|
|||
|
|
# 添加标题和标签
|
|||
|
|
plt.title(f'Log-Probability Density Function (logPDF) of Beta(α={alpha}, β={beta_param})')
|
|||
|
|
plt.xlabel('x')
|
|||
|
|
plt.ylabel('log(PDF)')
|
|||
|
|
plt.grid(True)
|
|||
|
|
plt.legend()
|
|||
|
|
|
|||
|
|
# 显示图形
|
|||
|
|
plt.show()
|