给定波浪波高和周期共100个,分别用正态分布、对数正态分布绘制波高和周期的概率密度分布图和经验累积分布图。求出平均波高、有效波高、均方根波高、十分之一波高、最大波高,并比较大小关系。
时间: 2023-07-10 09:11:55 浏览: 300
好的,我会为您解答这个问题。
以下是一段代码,用于生成正态分布和对数正态分布的波高和周期数据,并绘制概率密度分布图和经验累积分布图。同时,计算并比较平均波高、有效波高、均方根波高、十分之一波高、最大波高的大小关系。
```matlab
% 生成正态分布波高和周期的数据
Hn = normrnd(2, 0.5, [1, 100]);
Tn = normrnd(8, 1, [1, 100]);
% 生成对数正态分布波高和周期的数据
Hln = lognrnd(0.5, 0.5, [1, 100]);
Tln = lognrnd(2, 0.5, [1, 100]);
% 绘制正态分布波高和周期的概率密度分布图和经验累积分布图
figure
subplot(2,2,1)
histogram(Hn)
xlabel('波高')
ylabel('频数')
title('正态分布波高的概率密度分布图')
subplot(2,2,2)
histogram(Tn)
xlabel('周期')
ylabel('频数')
title('正态分布周期的概率密度分布图')
subplot(2,2,3)
ecdf(Hn)
xlabel('波高')
ylabel('概率')
title('正态分布波高的经验累积分布图')
subplot(2,2,4)
ecdf(Tn)
xlabel('周期')
ylabel('概率')
title('正态分布周期的经验累积分布图')
% 绘制对数正态分布波高和周期的概率密度分布图和经验累积分布图
figure
subplot(2,2,1)
histogram(Hln)
xlabel('波高')
ylabel('频数')
title('对数正态分布波高的概率密度分布图')
subplot(2,2,2)
histogram(Tln)
xlabel('周期')
ylabel('频数')
title('对数正态分布周期的概率密度分布图')
subplot(2,2,3)
ecdf(Hln)
xlabel('波高')
ylabel('概率')
title('对数正态分布波高的经验累积分布图')
subplot(2,2,4)
ecdf(Tln)
xlabel('周期')
ylabel('概率')
title('对数正态分布周期的经验累积分布图')
% 计算正态分布和对数正态分布的平均波高、有效波高、均方根波高、十分之一波高、最大波高
mean_hn = mean(Hn);
mean_hln = mean(Hln);
fprintf('正态分布波高的平均值为:%.2f\n', mean_hn)
fprintf('对数正态分布波高的平均值为:%.2f\n', mean_hln)
[~, ind_hn] = sort(Hn);
[~, ind_hln] = sort(Hln);
ind_hn = ind_hn(end-1:end);
ind_hln = ind_hln(end-1:end);
Hn_eff = 0.707*(Hn(ind_hn(1))+Hn(ind_hn(2)));
Hln_eff = 0.707*(Hln(ind_hln(1))+Hln(ind_hln(2)));
fprintf('正态分布波高的有效波高为:%.2f\n', Hn_eff)
fprintf('对数正态分布波高的有效波高为:%.2f\n', Hln_eff)
Hn_rms = sqrt(mean(Hn.^2));
Hln_rms = sqrt(mean(Hln.^2));
fprintf('正态分布波高的均方根波高为:%.2f\n', Hn_rms)
fprintf('对数正态分布波高的均方根波高为:%.2f\n', Hln_rms)
Hn_10 = Hn(ind_hn(1));
Hln_10 = Hln(ind_hln(1));
fprintf('正态分布波高的十分之一波高为:%.2f\n', Hn_10)
fprintf('对数正态分布波高的十分之一波高为:%.2f\n', Hln_10)
Hn_max = max(Hn);
Hln_max = max(Hln);
fprintf('正态分布波高的最大波高为:%.2f\n', Hn_max)
fprintf('对数正态分布波高的最大波高为:%.2f\n', Hln_max)
```
这段代码中,我们首先使用Matlab中的“normrnd”函数生成正态分布波高和周期的数据,使用“lognrnd”函数生成对数正态分布波高和周期的数据。然后,使用Matlab中的“histogram”函数和“ecdf”函数绘制正态分布和对数正态分布的波高和周期的概率密度分布图和经验累积分布图。
接下来,我们计算正态分布和对数正态分布的平均波高、有效波高、均方根波高、十分之一波高、最大波高,并比较它们之间的大小关系。最后使用Matlab中的“fprintf”函数输出结果。
阅读全文