常见分布在matlab的仿真实现方法

ops/2024/9/25 7:10:44/

在 MATLAB 中进行不同概率分布的仿真,你可以使用内置的函数生成不同分布的随机数。以下是一些常见的分布及其仿真方法的示例。

1. 正态分布 (Normal Distribution)

使用 normrndrandn 函数生成正态分布随机数。

matlab">mu = 0; % 均值
sigma = 1; % 标准差
n = 1000; % 样本数量% 使用normrnd
data_normal = normrnd(mu, sigma, [1, n]);% 或者使用randn生成标准正态分布 (均值0, 方差1),再进行缩放
data_normal = mu + sigma * randn(1, n);% 绘制直方图
histogram(data_normal, 30);
title('Normal Distribution');

2. 学生 t 分布 (Student’s t Distribution)

使用 trnd 函数生成 t 分布随机数。

matlab">v = 5; % 自由度
n = 1000; % 样本数量data_t = trnd(v, [1, n]);% 绘制直方图
histogram(data_t, 30);
title('Student''s t Distribution');

3. 均匀分布 (Uniform Distribution)

使用 rand 函数生成均匀分布随机数。

matlab">a = 0; % 下界
b = 10; % 上界
n = 1000; % 样本数量data_uniform = (b-a) * rand(1, n) + a;% 绘制直方图
histogram(data_uniform, 30);
title('Uniform Distribution');

4. 指数分布 (Exponential Distribution)

使用 exprnd 函数生成指数分布随机数。

matlab">lambda = 2; % 速率参数 (λ)
n = 1000; % 样本数量data_exp = exprnd(1/lambda, [1, n]);% 绘制直方图
histogram(data_exp, 30);
title('Exponential Distribution');

5. 卡方分布 (Chi-Square Distribution)

使用 chi2rnd 函数生成卡方分布随机数。

matlab">k = 4; % 自由度
n = 1000; % 样本数量data_chi2 = chi2rnd(k, [1, n]);% 绘制直方图
histogram(data_chi2, 30);
title('Chi-Square Distribution');

6. 伽马分布 (Gamma Distribution)

使用 gamrnd 函数生成伽马分布随机数。

matlab">alpha = 2; % 形状参数
beta = 2; % 尺度参数
n = 1000; % 样本数量data_gamma = gamrnd(alpha, beta, [1, n]);% 绘制直方图
histogram(data_gamma, 30);
title('Gamma Distribution');

7. 泊松分布 (Poisson Distribution)

使用 poissrnd 函数生成泊松分布随机数。

matlab">lambda = 3; % 均值
n = 1000; % 样本数量data_poisson = poissrnd(lambda, [1, n]);% 绘制直方图
histogram(data_poisson, 30);
title('Poisson Distribution');

8. 二项分布 (Binomial Distribution)

使用 binornd 函数生成二项分布随机数。

matlab">p = 0.5; % 成功概率
N = 10; % 尝试次数
n = 1000; % 样本数量data_binomial = binornd(N, p, [1, n]);% 绘制直方图
histogram(data_binomial, 30);
title('Binomial Distribution');

9. Beta 分布 (Beta Distribution)

使用 betarnd 函数生成 Beta 分布随机数。

matlab">alpha = 2; % 形状参数
beta = 5; % 形状参数
n = 1000; % 样本数量data_beta = betarnd(alpha, beta, [1, n]);% 绘制直方图
histogram(data_beta, 30);
title('Beta Distribution');

10. 绘制多个分布进行比较

如果你想在同一张图上比较不同分布的特性,可以使用 subplot 将多个直方图放在一起:

matlab">figure;
subplot(2,2,1);
histogram(data_normal, 30);
title('Normal Distribution');subplot(2,2,2);
histogram(data_t, 30);
title('Student''s t Distribution');subplot(2,2,3);
histogram(data_uniform, 30);
title('Uniform Distribution');subplot(2,2,4);
histogram(data_exp, 30);
title('Exponential Distribution');

总结

通过使用 MATLAB 中内置的概率分布函数,能够生成各种常见分布的数据,并对其进行可视化分析。这对于了解不同分布的特性及其应用非常有帮助。


http://www.ppmy.cn/ops/115674.html

相关文章

QT窗口无法激活弹出问题排查记录

问题背景 问题环境 操作系统: 银河麒麟V10SP1qt版本 : 5.12.12 碰见了一个问题应用最小化,然后激活程序窗口无法弹出 这里描述一下代码的逻辑,使用QLocalServer实现一个单例进程,具体的功能就是在已存在一个程序A进程时,再启动这个程序A,新的程序A进程会被杀死,然后激活已存…

GNU链接器(LD):REGION_ALIAS函数(为存储区域取别名)用法及实例解析

0 参考资料 GNU-LD-v2.30-中文手册.pdf GNU linker.pdf1 前言 一个完整的编译工具链应该包含以下4个部分: (1)编译器 (2)汇编器 (3)链接器 (4)lib库 在GNU工具链中&…

CS创世8GB SD NAND的低功耗特性

在电子设备不断追求低功耗的今天,CS创世半导体的8GB SD NAND芯片以其低功耗特性脱颖而出。这款芯片的读写电流仅为15mA,相较于同类产品,其功耗显著降低,这不仅延长了设备的使用时间,还减少了对电池的依赖。这种低功耗特…

oracle avg、count、max、min、sum、having、any、all、nvl的用法

组函数 having的使用 any的使用 all的使用 nvl 从执行结果来看,nvl(列名,默认值),nvl的作用就是如果列名所在的这一行出现空则用默认值替换

阿里云函数计算 x NVIDIA 加速企业 AI 应用落地

作者:付宇轩 前言 阿里云函数计算(Function Compute, FC)是一种无服务器(Serverless)计算服务,允许用户在无需管理底层基础设施的情况下,直接运行代码。与传统的计算架构相比,函数…

前缀和问题

洛谷题面 这个其实可以当模板了。 代码&#xff1a; #include<bits/stdc.h> using namespace std; const int N1e510; int sum[N]; int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n,m,x;cin>>n;for(int i1;i<n;i){cin>>x;sum[i]sum[i…

Elasticsearch、ik分词器、elasticsearch-head、Kibana的认识与安装

文章目录 elasticsearch安装elasticsearchIK中文分词器elasticsearch-headkibana elasticsearch Elasticsearch是一个基于Lucene的搜索服务器&#xff0c;也是属于NoSQL阵营的数据库。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口提供给我们操…

Linux便捷查询使用手册 第一章:引言

目录 1.1 什么是Linux&#xff1f; 1.1.1 Linux内核与其他Unix-like系统内核的比较 1.1.2 Linux内核与其他操作系统内核的不同 1.1.3 Linux内核的主要功能和组件 1.2 Linux的历史与发展 1.2.1 重要里程碑事件 1.2.2 重要Linux版本发布 1.3 Linux的发行版概述 1.3.1 主…