实际上,我们对原始椭圆作一个平移变换(x-u)和一个旋转变换(V*),可以使其中心平移到原点,长短轴的方向与坐标轴重合。而绘等概率椭圆的过程则与此相反,先用标准的椭圆方程产生组成曲线的离散点,然后经过相反的旋转变换和平移,得到原始的椭圆。

举例来说,首先,设置二维正态分布的参数,均值和协方差,并用mvnrnd产生一组符合此分布的随机数。

Mu = [2 3]';

Sigma = [0.9 0.4;0.4 0.2];

p = mvnrnd(Mu,Sigma,100);

plot(p(:,1),p(:,2),'.','MarkerSize',6)

设置半径,进行特征值分解

r =1;

[V,D] = eig(Sigma);

用linspace产生一个坐标轴(y)上的一组等间隔离散坐标值,再根据标准椭圆方程产生对应的x的坐标。

y =

linspace(-sqrt(r^2*D(2,2)),sqrt(r^2*D(2,2)),60);

% compute x

x(1,:) = sqrt((r^2-y(:).^2/D(2,2))*D(1,1));

x(1,:) = real(x(1,:));

这只产生了半个椭圆,还要产生另一半(注意两条曲线的坐标旋转方向要一致),然后旋转,平移,画图:

Ellip = [x,-x(1,:)]; % x

Ellip(2,:) = [y,fliplr(y)]; %y

Ellip = Ellip'*inv(V); % rotate

Ellip(:,1) = Ellip(:,1)+Mu(1); %shift

Ellip(:,2) = Ellip(:,2)+Mu(2);

hold on;

plot(Ellip(:,1),Ellip(:,2));

plot(Mu(1),Mu(2),'+'); %Plot center

最终的效果:

另外,在对原始椭圆做旋转变换时,如果在V的前面再乘以一项,改为

,则椭圆会变为圆。对多元正态分布的随机变量应用此变换,则其分布在各个方向上也变为均匀的。这就是信号处理中的白化变换。

三维正态分布的等概率曲面为椭球,其绘制过程也是类似的。

产生1/8曲面

xhalf = linspace(sqrt(r^2*D(1,1)),0,Nint);

Ninthalf = round(Nint/2);

zsect = zeros(Nint,Ninthalf);

ysect = zeros(Nint,Ninthalf);

for ti = 1:Nint

r2d = r^2 - xhalf(ti).^2/D(1,1);

ysect(ti,:) = linspace(0,sqrt(r2d*D(2,2)),Ninthalf);

zsect(ti,:) = sqrt((r2d - ysect(ti,:).^2/D(2,2) )*D(3,3));

xsect(ti,1:Ninthalf) = xhalf(ti);

end

zsect = real(zsect);

通过镜像产生1/4

%x>0,Z>0

xsect = [xsect,xsect];

ysect = [ysect,fliplr(ysect)];

zsect = [zsect,-fliplr(zsect)];

1/2

%x>0

xsect = [xsect,xsect];

ysect = [ysect,-fliplr(ysect)];

zsect = [zsect,fliplr(zsect)];

1/1

% make it a whole

xsect = [xsect;-flipdim(xsect,1)];

ysect = [ysect;flipdim(ysect,1)];

zsect = [zsect;flipdim(zsect,1)];

matlab实现椭圆正态分布,Normal distribution and Ellipse正态分布和椭圆、椭球相关推荐

  1. tableau linux无网络安装_举个栗子!Tableau 技巧(110)两种方法实现正态分布 Normal distribution...

    关于正态分布 正态分布(Normal distribution),也称"常态分布",又名高斯分布(Gaussian distribution).正态分布是统计学中一个重要的概率分布 ...

  2. 黎曼和 Riemann Sum ,黎曼积分Riemann Integral,正态分布normal distribution

    这里有一块形状不规则的土地,要测量它的面积,怎么办呢?一个叫黎曼的德国数学家(Bernhard Riemann, 1826-1866),他想了个办法:将这不规则图形切成一条条的小长条儿,然后将这个长条 ...

  3. 统计学习 | 正态分布 Normal Distribution

    参考资料 统计学-1:判断数据是否满足正态分布 - 知乎 (zhihu.com) 正态分布!你真的了解么?_检验 (sohu.com) 正态检验 (Normality Test)--常见方法汇总与简述 ...

  4. matlab怎么伯努利分布,伯努利分布 Bernoulli distribution

    伯努利分布 是一种离散分布,有两种可能的结果.1表示成功,出现的概率为p(其中0 概率分布有两种类型:离散(discrete)概率分布和连续(continuous)概率分布. 离散概率分布也称为概率质 ...

  5. Normal Distribution Chi-squared Distribution t distribution F-distribution

    最近看论文发现经常有一些统计学的内容,但是这部分内容之前一直都是很薄弱的地方,不敢涉猎,现在学习一下,并整理下来,方便以后查阅. Normal Distribution & Chi-squar ...

  6. 基于 Matlab 的方差-协方差矩阵可视化表示(椭圆、椭球)

    文章目录 Part.I Introduction Part.II 二维情况 Chap.I 绘图函数 Chap.II 调用示例与结果 Part.III 三维情况 Chap.I 绘图函数 Chap.II ...

  7. python 正态分布图_Python工具(正态分布对比图)

    #coding:utf8 import matplotlib.pyplot as plt import numpy as np def visNormal(myArr,deleteOutlier=Tr ...

  8. R语言对数正态分布分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm rlnorm)实战

    R语言对数正态分布函数Log Normal Distribution(dlnorm, plnorm, qlnorm & rlnorm)实战 目录 R语言对数正态分布函数Log Normal D ...

  9. R可视化绘制对数正态分布(Log Normal Distribution)

    R可视化绘制对数正态分布(Log Normal Distribution) 为了绘制R中对数正态分布的概率密度函数,我们可以使用以下函数: dlnorm(x, meanlog = 0, sdlog = ...

最新文章

  1. 中国都有哪些骨干网?带宽各是多少?
  2. android 自定义switch控件,Android中switch自定义样式
  3. 在云服务器搭建WordPress博客(六)发布和管理文章
  4. C++:33---类成员指针
  5. 为Flash Builder/Professional更新Flash Player
  6. 【Vegas原创】使用javascript实现两个listbox中的添加、删除
  7. 利用SqlBuikCopy实现数据批量写入
  8. ubuntu下搭建车场环境(代码使用jekins构建)
  9. 特斯拉起诉离职员工窃取机密代码和文件
  10. ECMAScript 6 开篇准备
  11. 【ZOJ 1964】【尺取】Bound Found【暑期 No.3】
  12. matlab 正则化表达式_MATLAB中常用的正则表达式
  13. iOS逆向之微信和支付宝修改步数 简洁无脑版
  14. linux重装系统保留文件,linux重装系统,如何保存硬盘中的内容
  15. c语言中实型标准,在C语言中的实型变量分为两种类型.docx
  16. 安装docker环境报错:Could not resolve host
  17. 前端关于Base64编码的一些技术分析
  18. screenX、clientX、pageX, offsetX的区别
  19. 同比与环比——财务小知识点
  20. Android M及以上版本系统 悬浮窗权限 的解决方案

热门文章

  1. java计算个人所得税,月收入的5000元以上部分征20%,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。
  2. 简谈socket在直播软件开发上的应用
  3. 视频教程-SAS数据分析:从入门到企业实战-数据挖掘
  4. 外卖平台对接笔记(美团外卖,饿了么外卖)
  5. 在JS里面获取浏览器sessionId
  6. python设计游戏使用手机操作_如何使用python控制手机(以微信游戏跳一跳为例)
  7. 在linux中启动mysql,在linux中启动mysql服务的命令
  8. 3分钟带您快速了解HIL测试及其架构
  9. Magisk搞机器记录(小米Mix3)
  10. ccf题库java_CCF题库