例1代码:
%{
已知区域G:x^2+y^2<=3^2,当(x,y)属于区域G时,函数f_XY(x,y)=1/(pi*3^2);
当(x,y)属于其他区域时,f_XY(x,y)=0。请使用MATLAB画出函数f_XY(x,y)的图像。
%}
% 定义区域G的半径
r = 3;
% 定义x和y的取值范围
x = linspace(-4, 4, 60);
y = linspace(-4, 4, 60);
% 生成网格点坐标矩阵
[X, Y] = meshgrid(x, y);
% 计算每个网格点对应的概率密度函数值
f_XY = zeros(size(X));
for i = 1:numel(X) %numel用于返回一个数组、矩阵或向量中的元素个数。
if X(i)^2 + Y(i)^2 <= r^2
f_XY(i) = 1 / (pi * r^2);
else
f_XY(i) = 0;
end
end
% 绘制3D立体图
figure;
mesh(X, Y, f_XY, 'EdgeColor', 'none');
%{
其中 'EdgeColor' 表示边缘颜色,'none' 表示不显示边缘线。
在绘制3D立体图时,如果不设置 'EdgeColor', 'none',则会在每个区域的边缘线上产生黑色的网格线,这些线条可能会干扰到图像的观察。
因此,在一般情况下,我们通常会将其设置为 'none',以便清晰地展示立体图中的各个部分。
%}
colorbar();
colormap(jet); %用了 jet 颜色表
shading interp; %图像更加平滑
xlabel('X');
ylabel('Y');
zlabel('概率密度函数');
view(45, 30);
axis tight;
例2的代码:
%{
已知区域G:x>0,y>0。当(x,y)∈G时,二维随机变量(X,Y)的概率密度函数为f_XY=e^[-(x+y)];
当(x,y)∈其他区域时,f_XY=0。
请使用MATLAB画出f_XY的图像、(X,Y)的分布函数F_XY的图像、(X,Y)的边缘分布F_X和F_Y的图像。
要求让图像因为取值不同有颜色变化。
%}
% 定义概率密度函数f_XY
f_XY = @(x,y) exp(-(x+y)).*(x>0).*(y>0);
% 绘制三维概率密度函数图像并添加颜色映射
figure;
[X,Y] = meshgrid(0:0.1:5);
Z = f_XY(X,Y);
surf(X,Y,Z,'EdgeAlpha',0); % 去除网格线条
xlabel('x');
ylabel('y');
zlabel('f_{XY}(x,y)');
title('概率密度函数f_{XY}(x,y)');
colormap(jet); % 添加颜色映射
colorbar; % 添加颜色标尺
% 计算并绘制二维分布函数F_XY
F_XY = @(x,y) 1 - exp(-x-y);
figure;
surf(X,Y,F_XY(X,Y),'EdgeAlpha',0); % 去除网格线条
xlabel('x');
ylabel('y');
zlabel('F_{XY}(x,y)');
title('分布函数F_{XY}(x,y)');
colormap(jet); % 添加颜色映射
colorbar; % 添加颜色标尺
% 计算并绘制边缘分布F_X和F_Y
F_X = @(x) 1 - exp(-x);
F_Y = @(y) 1 - exp(-y);
x = 0:0.1:5;
y = 0:0.1:5;
figure;
subplot(2,1,1);
plot(x,F_X(x),'LineWidth',2);
xlabel('x');
ylabel('F_X(x)');
title('X的边缘分布函数F_X(x)');
subplot(2,1,2);
plot(y,F_Y(y),'LineWidth',2);
xlabel('y');
ylabel('F_Y(y)');
title('Y的边缘分布函数F_Y(y)');
例4的代码:
clc;
clear ;
close all;
% 定义区域G和概率密度函数f_XY
r = 3; % 圆半径为3
G = @(x,y) x.^2 + y.^2 <= r^2;
f_XY = @(x,y) (G(x,y)*1/(pi*r^2)) + ((~G(x,y)).*0);
disp('f_XY=');
disp(f_XY);
% 计算边缘概率密度函数f_X(x)、f_Y(y)
f_X = @(x) integral(@(y) f_XY(x,y), -sqrt(r^2-x^2), sqrt(r^2-x^2));
f_Y = @(y) integral(@(x) f_XY(x,y), -sqrt(r^2-y^2), sqrt(r^2-y^2));
disp('f_X=');
disp(f_X);
disp('f_Y=');
disp(f_Y);
% 绘制图像
x_values = linspace(-r,r,50);
y_values = linspace(-r,r,50);
[X,Y] = meshgrid(x_values,y_values);
Z_XY = f_XY(X,Y);
Z_X = arrayfun(f_X, x_values);%用x_values代替x,得f_X(x_values)
Z_Y = arrayfun(f_Y, y_values);
figure;
mesh(X,Y,Z_XY);
shading interp;
xlabel('X');
ylabel('Y');
zlabel('f_{XY}(x,y)');
title('概率密度函数pdf');
colormap jet % 采用jet配色方案
colorbar
xlim([min(x_values),max(x_values)]);
ylim([min(y_values),max(y_values)]);
figure;
plot(x_values,Z_X,'LineWidth',2);
xlabel('X');
ylabel('f_X(x)');
title('X的边缘概率密度函数');
figure;
plot(y_values,Z_Y,'LineWidth',2);
xlabel('Y');
ylabel('f_Y(y)');
title('Y的边缘概率密度函数');
例2代码:
%{
使用MATLAB画图:矩形A:由直线x=8、x=12、y=7和y=9相交而成。
阴影区域B:由两条线x-y=1/12和x-y=-1/12之间的区域与区域A的交集。
请画区域A和B的轮廓,使用灰色作为区域B的阴影。并在图中合适的位置标注A和B,
另外,图的标题等尽量使用中文。图像的坐标区域限制为7.5=<x<=12.5,6.5<=y<=9.5。
%}
clc;
clear ;
close all;
% 定义矩形A的四个顶点的坐标
A_x = [8 8 12 12];
A_y = [7 9 9 7];
% 计算区域A和区域B
[X,Y] = meshgrid(7.5:0.01:12.5,6.5:0.01:9.5);
A = (X>=8 & X<=12) & (Y>=7 & Y<=9);
B = ((X-Y)>=-1/12 & (X-Y)<=1/12) & A;
% 创建一个新的图形窗口
figure;
% 绘制矩形A的轮廓(边界)
patch(A_x, A_y, 'k', 'EdgeColor', 'k', 'FaceColor', 'none');
% 填充区域B的阴影(灰色)
hold on;
% 绘制一个填充颜色为灰色(RGB值为[.7 .7 .7])的平面,其边缘为黑色('k'),没有边框线。
patch(X(B), Y(B), 'k', 'EdgeColor', 'none', 'FaceColor', [.7 .7 .7]);
% 设置坐标轴范围
xlim([7.5 12.5]);
ylim([6.5 9.5]);
% 添加A和B的标注
% 在平面上坐标为(mean(X(A)), mean(Y(A)))的位置放置一个文本标签'A'。该标签水平和垂直居中对齐,并设置字体大小为16,加粗文字样式。
text(mean(X(A)), mean(Y(A)), 'A', 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle', 'FontSize', 16, 'FontWeight', 'bold');
text(mean(X(B)), mean(Y(B)), 'B', 'HorizontalAlignment', 'center', 'VerticalAlignment', 'middle', 'FontSize', 16, 'FontWeight', 'bold');
% 添加标题和标签
title('区域A和区域B');
xlabel('x');
ylabel('y');