(其中 Y=⎡⎣⎢⎢y1⋮yq⎤⎦⎥⎥ , y1⋯yq∼N(0,1) )
(其中 Y∼Nq(0,Iq),X=AY+μ∼Np(μ,AA′),A:p∗q ,其中 AA′ 记为 ∑ )
X=[X1X2]∼N2(μ,∑) , μ=[μ1μ2] , ∑=[σ11σ21σ12σ22]=[σ12ρσ1σ2ρσ1σ2σ22]>0
* R实现:
#不相关情形
x=seq(-5,5,by=0.1) #生成一组数,从-5到5,间隔0.1#
y=x
x=1
x1=dnorm(x,0,1) #返回值为正态分布密度函数值#
z=outer(x1,x1)
persp(x,y,z,theta=30,phi = 10,expand = 0.8)
#相关情形
fn=function(x,y){
sigma=matrix(c(1,0,0,1),c(2,2))
mu=c(0,0)
sSigma=solve(sigma)
return(exp(-((x-mu[1])^2*sSigma[1,1]+2*(x-mu[1])*(y-mu[2])*sSigma[1,2]+(y-mu[2])^2*sSigma[2,2])/2)/(2*pi*det(sigma)^0.5))
}
a=4
x=seq(-a,a,0.1)
y=seq(-a,a,0.1)
#outer为每个点(x,y)得到对应的z即z[i,j]=fn(x[i],y[j]),类似matlab的meshgrid
z=outer(x,y,fn)
persp(x,y,z,theta=30)
*matlab实现:
u=[0;0];%均值
v=[1,0;0,1];%协方差阵
x=-7:0.05:7;%x是-7到7的一组数,每次增加0.05
y=-7:0.05:7;
[X,Y]=meshgrid(x,y);%生成二维网格矩阵
s2x=v(1,1) %x的方差 矩阵v的(1,1)元
s2y=v(2,2) %y的方差 矩阵v的(2,2)元
sx=sqrt(s2x) %x的标准差
sy=sqrt(s2y) %y的标准差
Cov=v(1,2) %协方差
r=Cov/(sx*sy) %相关系数
a=1/(2*pi*sx*sy*sqrt(1-r^2));
b1=-1/(2*(1-r^2));
b2=((X-u(1))./sx).^2;
b3=((Y-u(2))./sy).^2;
b4=2*r.*(X-u(1)).*(Y-u(2))./(sx*sy)
Z=a*exp(b1*(b2+b3-b4));%也就是f(x1,x2)的表达式
mesh(X,Y,Z),title('密度函数图')
figure
contour(X,Y,Z),title('等高线图')