MATLAB概率密度函数估计

MATLAB概率密度函数估计 
2016-03-23 16:12:24

分类: C#/.net

函数:ksdensity

功能:根据给定的数据,估计概率密度分布

示例:

1. 正态分布

x = randn(1,100000); 

[y,xi] = ksdensity(x);

plot(xi,y, ‘bo’)

% 验证

hold on

yn=normpdf(xi,0,1); % 标准正态分布的概率密度函数

plot(xi,yn,’b’)

2. 瑞利分布

x = abs(randn(1,10000) + 1i*randn(1,10000));

[y,xi] = ksdensity(x);

plot(xi,y, ‘bo’)

% 验证

hold on

b = 1; 

yn = zeros(size(xi));

k=find(b > 0 & xi >= 0);

if any(k),

    xk = xi(k);

    % 瑞利分布的概率密度函数

    yp(k) = (xk ./ b^2) .* exp(-xk.^2 ./ (2*b^2));

end

plot(xi,yp,’b’)

3. 莱斯分布?

N = 100000;

K = 0.5;

const=1/(2*(K+1));

x1=randn(1,N);

x2=randn(1,N);

x=sqrt(const*((x1+sqrt(2*K)).^2+x2.^2));

[y,xi] = ksdensity(x);

plot(xi,y, ‘bo’)

% 验证

hold on

sig = 1;

v = 1;

yn = zeros(size(xi));

k=find(b > 0 & xi >= 0);

if any(k),

    xk = xi(k);

    % Rician分布的概率密度函数

    yp(k) = (xk ./ sig^2) .* exp((-xk.^2 + v.^2) ./ (2*sig^2)) .* besselj(0, (xk .*v ./ sig^2));

end

plot(xi,yp,’b’)

http://blog.chinaunix.net/uid-20692368-id-5680963.html

点赞