重要性采样是什么?
利用求积分验证重要性采样
利用均匀撒粒子的蒙特-卡洛法求面积见
自动跟踪算法笔记(1):蒙特卡洛法、推导以及MATLAB实现
下面分别从均匀分布和正态分布角度验证重要性采样
概率密度函数服从均匀分布
%% 采样方法求积分——均匀分布
clc;
clear all;
close all;
n = 1000000;
x = 0 + (1 - 0) * rand(1,n);
rel = sum(x.^2)/single(n);
%% 采样方法求积分——重要性采样
clc;
clear all;
close all;
n = 1000000;
x = 0 + (3 - 0) * rand(1,n);
x(find(x > 1)) = 0;
rel = sum(x.^2*3)/single(n);
概率密度函数服从正态分布
先回顾一下正态分布的公式
常见分布 的 数学期望以及方差公式
%% 采样方法求积分——正态分布
clc;
clear all;
close all;
n = 1000000;
x = normrnd(1.8,1,[1,n]);
rel = sum(x)/single(n);
%% 采样方法求积分——重要性采样
clc;
clear all;
close all;
n = 1000000;
x = normrnd(2.8,9,[1,n]);
p_x = 1/sqrt(2*pi)*exp(-(x-1.8).^2/2);
p_x_2 = 1/sqrt(2*pi)/9*exp(-(x-2.8).^2/2/9^2);
y = x.*p_x./p_x_2;
rel = sum(y)/single(n);
参考资料
1、粒子滤波与重要性采样
https://blog.csdn.net/artista/article/details/51570878