首页 > 编程知识 正文

实验二matlab矩阵分析与处理,matlab欧拉法解常微分方程

时间:2023-05-04 23:20:28 阅读:148048 作者:4015

经验正交分解原理

个人资料

经验函数分析方法(empirical orthogonal function,简称EOF )、特征向量分析(eigen vector analysis )或主成分分析(principal component analysis,简称PCC )

所分析的常规特征向量对应于空间样本,其被称为空间特征向量或空间模式; 对应的是时间变化称为时间系数。

特长

(1)主要特色:能有效表达物理场的主要信息,保留次要信息,排除外来随机干扰。

)2)没有固定的函数形式)该正交函数展开没有像三角函数展开、球函数展开那样固定的展开形式。

)3)图形是由场本身决定的,而不是事先人为地给出典型的场函数。

)4)具有收敛快、能很好地反应出场的基本结构的特征。

主要APP应用

)1)综合分析空间不同站点/同一点不同时间、不同高度的多个因素(可在有限区域不规则分布的站点进行)。

)2)可用于要素场分析、竖向结构分析、动力模型竖向分层等。

基本思想

经验正交函数分解的基本思想是包含m个空间点(或p个变量)的n个时间序列的观测场的序列(I=1,2,m; j=1,2,…,n )被分解为相互正交的时间函数和相互正交的空间函数的积之和,在典型空间函数的情况下,大多把时间函数看作典型情况下的加权系数。 不同时间的要素场是几个典型场被不同权重线性叠加的结果,各场之间的差将导致各典型场的系数不同。

$$ nXm=nEm times mPhi_{m}^{T} $$

EOF函数概述

EOF函数的原型如下。

$$ [V,EOFs,EC,error]=eof(d,p ) $$

本站提供的下载:EOF.m

输入参数

d :输入的物理场数据为二维矩阵,假设每行为样本,各列为变量。 因此,d列表示时间序列变量。

p :可选。 EOF分析结果的模态数必须小于时间间隔和样本数

输出参数

v )关于EOFs的特征向量;

EOFs :时间系数;

EC )由p个特征值列向量组成的矩阵;

error :重构误差;

经验正交分解示例

下载数据

将数据下载到soda : simpleoceandatassimilation

选择相关变量,以" TAUY "为例。

合理选择研究区域、时间范围等

选择合适的数据下载后,仔细核对数据的基本信息

在数据下载页面上,选择适当的数据格式,然后选择NetCDF

现在开始提取数据。 提取的数据名称为data.cdf

建议根据下载的数据变量名、范围、时间等进行命名。 很容易找。 例如,tauy_1958_2008_NWPacific.cdf

数据读取1

2

3

4

5

6

7

8 % %读数据

file=' tauy _ 1958 _ 2008 _ NW Pacific.CDF ';

% NC disp (文件);

time=NCread(file,' time );

lon=NCread(file,' lon ' );

lat=NCread(file,' lat ' );

tauy=NCread(file,' tauy ' );

missing_value=ncreadatt(file,' tauy ',' missing_value ' );

数据预处理

(1)显示数据的范围

要使用m_map工具箱显示地图,请执行以下操作:

1图形; m_proj('Mercator ',' lat ',[20 60],' lon ',[100 160] ); m_coast(patch ),[0.7 0.7 0.7]; m_grid;

)2)选择海域

1

2

3% set range

la=46:59;

lo=145:155;

)3)趋势消除处理

1

2

3

4

5

6

7

8

9

10

1xx=find(lon=min(lo ) lon=max ) lo );

>

yy = find(lat>=min(la) & lat<=max(la));

tauy_sub = zeros(length(xx),length(yy),612);

tauy_sub = tauy(xx,yy,:)

%% detrend

tauy_de = zeros(size(tauy_sub));

for ii = 1:length(xx)

for gxdwx = 1:length(yy)

tauy_de(ii,gxdwx,:) = detrend(squeeze(tauy_sub(ii,gxdwx,:)));

end

end

EOF计算1

2

3

4%% EOF

tauy_de = reshape(tauy_de,length(xx)*length(yy),612);

[V,EOFs,EC,error] = EOF(tauy_de,10);

EC = reshape(EC,length(xx),length(yy),10);

计算方差贡献率1V = [2.3544 0.1429 0.0625 0.0410 0.0305 0.0085 0.0077 0.0073 0.0024 0.0021]

计算各模态的方差贡献率:

1

2>> V/sum(V)

ans =[0.8853 0.0537 0.0235 0.0154 0.0115 0.0032 0.0029 0.0028 0.0009 0.0008]

绘图

根据方差贡献率,画出方差贡献率大于90%的前若干个模态的空间模态和时间系数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49%% figure

figure;

% EOF2

plot(EOFs(:,2));

ylabel('PC2','FontSize',18);

xlabel('Year','FontSize',18)

axis([1 612 -0.2 0.2]);

set(gca,'xtick',25:12*5:576,'xticklabel',{1960:5:2005},'FontSize',14);

set(gca,'tickdir','out' ,'LineWidth',1.5);

set(gca,'Position',[0.075 0.125 0.875 0.15]);

box off

% EOF1

subplot(323)

plot(EOFs(:,1));

ylabel('PC1','FontSize',18);

axis([1 612 -0.2 0.2]);

set(gca,'xtick',25:12*5:576,'xticklabel',{},'FontSize',14);

set(gca,'tickdir','out' ,'LineWidth',1.5);

set(gca,'Position',[0.075 0.3 0.875 0.15]);

box off

% EC2

subplot(322)

m_proj('Mercator','lat',[45 60],'lon',[130 160]);

m_pcolor(lon(xx),lat(yy),EC(:,:,2)');

caxis([-1.0 2.5]) %设置颜色映射范围

shading interp;

m_coast('patch',[0.7 0.7 0.7]);

m_grid('linestyle','none','box','fancy','tickdir','out');

set(gca,'Position',[0.5 0.5 0.45 0.4]);

title('EOF2','FontSize',18);

% EC1

subplot(321)

m_proj('Mercator','lat',[45 60],'lon',[130 160]);

m_pcolor(lon(xx),lat(yy),EC(:,:,1)');

caxis([-1.0 2.5])

shading interp;

m_coast('patch',[0.7 0.7 0.7]);

m_grid('linestyle','none','box','fancy','tickdir','out');

set(gca,'Position',[0.05 0.5 0.45 0.4]);

title('EOF1','FontSize',18);

% colorbar

h = colorbar;

caxis([-1.0 2.5])

set(h,'position',[0.9,0.5,0.02,0.4])

set(h,'ytick',-1.0:0.7:2.5,'yticklabel',{-1.0:0.7:2.5})

结果图

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。