多元正态密度的曲面图

问题描述 投票:0回答:2

我有Multivariate Normal Density的似然函数,其均值为mu=[3 5]'covariance=9*I。如何在Matlab中绘制其2D曲面?

matlab normal-distribution probability-density
2个回答
0
投票

对数似然函数可以从PDF或参考wiki获得。

Mu = [3 5]';
Sigma = 9*eye(2);
loglikeh=@(x) -0.5*log(det(Sigma)) + (x-Mu)'*inv(Sigma)*(x-Mu) + length(x)*log(2*pi);  % For single x

xMin = -2;
xMax = 7;
step = 0.1;
X1 = xMin:step:xMax;
X2 = xMin:step:xMax;
L = zeros(length(X1),length(X2));
for i = 1:length(X1)
    for j = 1:length(X2)
       x = [X1(i) X2(j)]';
       L(i,j) = loglikeh(x);
    end
end

如果我犯了错误,请发表评论,以便我能解决。希望这可以帮助。

绘制

surf(X1,X2,L')      % Note L is transposed if done this way
xlabel('x_1')
ylabel('x_2')
zlabel('log-likelihood')

有关更多可视化和选项,请参阅these answers


-1
投票

您可以尝试在这里引用:(在MATLAB中使用mvnpdf函数)F = mvnpdf([X1(:) X2(:)],mu,Sigma)请在这里查看https://www.mathworks.com/help/stats/multivariate-normal-distribution.html

© www.soinside.com 2019 - 2024. All rights reserved.