我正在研究一个联合pdf问题,其中随机变量
U = sqrt(X^2+Y^2)
X
和Y
均匀分布在(-2,2)
上。我想绘制X
和Y
的联合pdf。然后计算U
的pdf并绘制它。我正在使用matlab R2011a,到目前为止,我已经提出了以下代码。在运行代码时,我收到了一条错误消息
Undefined function or method 'makedist' for input arguement type 'char'.
我发现makedist不是2011版。所以我尝试使用
a=-2;
b=2;
X=a+(b-a)*rand(-10,10);
Y= a+(b-a)*rand(-10,10).
但是,我不确定如何计算X
和Y
的pdf,然后从中联合XY
的pdf。任何帮助,部分或整体,表示赞赏。
以下是问题的matlab代码
%% Create distribution objects for X~U(-2,2) and Y~U(-2,2)
pdx=makedist('Uniform','lower',-2,'upper',2);
pdy=makedist('Uniform','lower',-2,'upper',2);
%Compute the pfs
x_ref=-10:1:10;
y_ref=-10:1:10;
pdf_x=pdf(pdx,x_ref);
pdf_y=pdf(pdy,y_ref);
% Plot the pdfs
figure 1;
stairs(x_ref,pdf_x,'g','Linewidth',2);
hold on;
stairs(y_ref,pdf_y,'r','Linewidth',2);
ylim([0 1.5]);
hold off;
% Joint pdf of x and Y
pdfXY=pdf_x*pdf_y;
figure 2;
plot(pdfXY);
%CDF and PDF of U
U=sqrt(X^2+Y^2);
Umin=0;
Umax=sqrt(b^2+b^2);
a=lower;
b=upper;
x=sqrt(U^2-Y^2);
xmin=0;
xmax=x;
ymin=0;
ymax=U;
Ucdf=integral2(pdfXY,xmin,xmax,ymin,ymax);
% plot CDF of U
figure 3;
plot(Ucdf)
我只想绘制区域而不是任何特定样本集。 X
和Y
是连续的独立均匀随机变量。
答案 0 :(得分:0)
由于您的x
和y
为independent at random,理论联合分布只是两者的乘积
P(x,y) = P(x)*P(y)
就MATLAB代码而言,您可能会想到x
和y
沿着两个不同的维度运行:
N = 10; %// think of a probability mass function over N points
x = linspace(-2,2, N);
y = linspace(-2,2, N)';
Px = ones(N,1)./N;
Py = ones(1,10)./N;
%// Then the joint will be:
Jxy = bsxfun(@times, Px , Py);
figure
pcolor(x,y,Jxy)
您现在可以插入您喜欢的任何发行版,如果它们是Px
和Py
的独立发行版,那么它将会正常工作