matlab 误差椭圆,求3倍标准差误差椭圆分析的程序

本文介绍了如何使用matlab根据《白话空间统计之九:方向分布(标准差椭圆)修正版》来编写程序,计算3倍标准差误差椭圆。程序涉及数据生成、椭圆参数计算,包括圆心、长短半轴、方向和标准差。通过实例展示了标准差椭圆在空间数据分析中的应用,解释了椭圆尺寸、方向和中心点的含义,并讨论了不同标准差级别下椭圆包含的数据比例。
摘要由CSDN通过智能技术生成

根据《白话空间统计之九:方向分布(标准差椭圆)修正版》(有些地方没有理解清楚),写了下面的程序。但是好像结果不对

Z=mvnrnd([0.5 1.5], [0.025 0.03 ; 0.03 0.16], 50);

X=Z(:,1);  Y=Z(:,2);

mean_X=nanmean(X);  mean_Y=nanmean(Y);   %椭圆圆心

%确定长短半轴

SDE_X=nanstd(X,1);

SDE_Y=nanstd(Y,1);

%确定方向

N=size(X,1)*size(X,2)-size(find(isnan(X)),1);  %非NaN元素个数

X2=nanvar(X(:),1)*N;

Y2=nanvar(Y(:),1)*N;

A1=nancov(X,Y,1);  % 是2*2矩阵,含4个元素,元素1是S(X(:)),及X的方差;元素4是Y的方差;元素2与3相等,是X与Y的协方差;

X1=A1(1)*N; % (X-mean_X)平方求和

Y1=A1(4)*N; % (Y-mean_Y) 平方求和

XY=A1(2)*N; %(X-mean_X)(Y-mean_Y) 求和

A=X1-Y1;

B=sqrt(A^2+4*XY^2);

C=2*XY;

theta=atan((A+B)/C);  % 椭圆方向,狐度,以X轴为准,正北方(12点方向)为0度,顺时针旋转    *180/pi=角度

%确定x、y轴的标准差

XStd=sqrt((cos(theta)^2*X1+sin(theta)^2*Y1-sin(2*theta)*XY)/N)*sqrt(2);  %X轴标准差,不知道是否有*sqrt(2)

YStd=sqrt((sin(theta)^2*X1+cos(theta)^2*Y1+sin(2*theta)*XY)/N)*sqrt(2);  %Y轴标准差,不知道是否有*sqrt(2)

% XStd=sqrt((cos(theta)^2*X1+sin(theta)^2*Y1-sin(2*theta)*XY)/N);  %X轴标准差,不知道是否有*sqrt(2)

% YStd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值