用Metropolis-Hastings算法从beta分布中生成样本,均匀分布为候选分布,写出matlab代码
时间: 2024-03-19 09:44:51 浏览: 76
好的,以下是用Metropolis-Hastings算法从beta分布中生成样本的matlab代码:
```matlab
% 定义beta分布的参数a和b
a = 2;
b = 5;
% 定义beta分布的概率密度函数
beta_pdf = @(x) x .^ (a - 1) .* (1 - x) .^ (b - 1);
% 定义均匀分布的概率密度函数
uniform_pdf = @(x) (0 <= x & x <= 1);
% 定义Metropolis-Hastings算法的函数
function samples = metropolis_hastings(p, q, x0, n)
x = x0;
samples = zeros(1, n);
for i = 1:n
x_star = q(x);
alpha = min(1, p(x_star) * q(x) / (p(x) * q(x_star)));
u = rand();
if u < alpha
x = x_star;
end
samples(i) = x;
end
end
% 定义均匀分布为候选分布的函数
uniform_proposal = @(x) rand();
% 从beta分布中生成10000个样本
samples = metropolis_hastings(beta_pdf, uniform_pdf, 0.5, 10000);
% 绘制生成的样本的直方图和beta分布的概率密度函数曲线
histogram(samples, 'Normalization', 'pdf', 'BinWidth', 0.05, 'FaceAlpha', 0.5);
hold on;
x = linspace(0, 1, 100);
plot(x, beta_pdf(x), 'r-', 'LineWidth', 2);
xlabel('x');
ylabel('Probability density');
```
在这个代码中,我们同样用了beta分布的概率密度函数作为目标分布p,在Metropolis-Hastings算法中,我们选择了均匀分布作为候选分布q,即uniform_pdf和uniform_proposal函数。最后,我们使用matlab自带的histogram函数绘制了生成的样本的直方图和beta分布的概率密度函数曲线。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![ipynb](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)