I'm trying to superimpose an exponential distribution to a uniform distribution, and it's not coming out right. Why? I was told I can transform from uniform to exponential by using the equation Y = − ln X/λ. Am I doing it wrong?
I'm definitely doing the exponential distribution wrong, am I?
7 views (last 30 days)
Show older comments
N = 1e4;
a=0; b=1;
x = a+(b-a)*rand([N,1]);
lambda = 1;
Y = -log(x)/lambda;
figure(1); clf
histogram(x,20,'Normalization','pdf');
hold on;
histogram(Y,20,'Normalization' , 'pdf')
hold off
xlabel('random variable $x$','Interpreter','latex','FontSize',20)
ylabel('Probability density','Interpreter','latex','FontSize',20)
title('Continuous uniform PDF','Interpreter','latex','FontSize',20)
Answers (2)
VBBV
on 20 Sep 2022
Edited: VBBV
on 20 Sep 2022
N = 1e4;
a=0; b=1;
x = (a+(b-a)*rand([N,1]));
lambda = 11; % try with different lambda values
Y = -log(x)/lambda;
figure(1); clf
histogram(x,20,'Normalization','pdf');
hold on;
histogram(Y,20,'Normalization' , 'pdf')
hold off
xlabel('random variable $x$','Interpreter','latex','FontSize',20)
ylabel('Probability density','Interpreter','latex','FontSize',20)
title('Continuous uniform PDF','Interpreter','latex','FontSize',20)
5 Comments
Chunru
on 20 Sep 2022
% if X is uniform on [0,1] then −loge(X) follows an exponential distribution with parameter 1
N = 1e5;
a=0; b=1;
x = a+(b-a)*rand([N,1]);
lambda = 1;
Y = -log(x)/lambda;
figure(1); clf
histogram(x,100,'Normalization','pdf');
hold on;
histogram(Y,100,'Normalization' , 'pdf')
xx = 0:0.1:10;
plot(xx, pdf('Uniform', xx, 0, 1), 'r--', 'Linewidth', 2);
plot(xx, pdf('Exponential', xx, 1), 'b--', 'Linewidth', 2);
xlim([0 10])
hold off
xlabel('random variable $x$','Interpreter','latex','FontSize',20)
ylabel('Probability density','Interpreter','latex','FontSize',20)
title('Continuous uniform PDF','Interpreter','latex','FontSize',20)
legend('Hist-unif', 'Hist-exp', 'Unif', 'Exp')
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!