概率特性仿真实验与程序-Matlab仿真-随机数生成-负指数分布-k阶爱尔兰分布-超指数分布
Matlab中的随机数生成方法
Matlab中的随机数生成方法随机数在计算机科学中扮演着重要的角色,它们被广泛应用于模拟、统计分析和算法设计等领域。
Matlab作为一种强大的数值计算工具,也提供了多种随机数生成方法。
本文将深入探讨Matlab中的随机数生成方法,并介绍其特点和使用场景。
1. 基本的随机数生成函数Matlab提供了基本的随机数生成函数,如rand、randn和randi等。
其中,rand 函数生成0到1之间的均匀分布随机数,randn函数生成符合标准正态分布的随机数,而randi函数则用于生成整数随机数。
这些函数具有简单易用的特点,适用于一般的随机数生成需求。
2. 自定义随机数生成器除了基本的随机数生成函数,Matlab还允许用户自定义随机数生成器。
用户可以通过设定随机数生成器的种子(seed)和算法来实现特定的随机数分布。
例如,可以使用randstream函数创建一个自定义的随机数流,并通过reset函数设置种子,以确保每次运行获得相同的随机数序列。
这使得Matlab的随机数生成更具可控性和重复性。
3. 高级随机数生成方法除了基本的随机数生成函数和自定义随机数生成器,Matlab还提供了一些高级的随机数生成方法。
这些方法包括蒙特卡洛方法、随机游走和马尔可夫链等。
蒙特卡洛方法是一种基于随机采样和统计模型的数值计算方法,常用于模拟、优化和概率分析等领域。
Matlab中的随机游走函数可以模拟随机漫步的过程,用于研究股票市场、物理传输和随机搜索等问题。
马尔可夫链是一种随机过程,具有记忆性和状态转移的特点,Matlab提供了马尔可夫链模拟函数,可用于模拟信道传输、语音识别和图像处理等应用。
4. 随机数的应用场景随机数在科学研究和工程实践中有着广泛的应用场景。
在模拟领域,随机数常用于生成真实世界的随机样本,用于测试和验证模型。
在统计分析中,随机数可用于生成随机样本和蒙特卡洛模拟,用于估计参数和检验假设。
在算法设计中,随机数常用于生成随机初始值、打破平衡和优化搜索空间等。
【个人总结系列-1】概率特性仿真实验与程序-Matlab仿真-随机数生成-负指数分布-k阶爱尔兰分布-超指数分布
概率特性仿真实验与程序-Matlab 仿真-随机数生成-负指数分布-k 阶爱尔兰分布-超指数分布使用Java 中的SecureRandom .nextDouble()生成一个0~1之间的随机浮点数,然后使用反函数法生成一个符合指数分布的随机变量(反函数求得为λ)1ln(R x --=)。
指数分布的参数λ为getExpRandomValue 函数中的参数lambda 。
生成一个指数分布的随机变量的代码如下,后面都将基于该函数生成一组负指数分布、K 阶爱尔兰分布、2阶超指数分布随机变量,然后将生成的随机数通过matlab 程序进行仿真,对随机数的分布特性进行验证。
生成一组参数为lambda (λ)的负指数分布的随机变量通过下面的函数生成一组λ参数为lambda 的随机变量,其中size 表示随机变量的个数。
通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存在exp.txt 文件中,供下面介绍的matlab 程序分析。
通过genExp (1000000, 0.2)生成1000000个参数为0.2的随机变量,然后保存到exp.txt 中,然后使用下面的matlab 程序对这些随机数的性质进行验证,如果这些随机数符合λ=0.2的负指数分布,则其均值应为1/λ,即1/0.2=5,其方差应为1/λ2=1/(0.2*0.2)=25。
然后对这些随机数的概率分布进行统计分析,以长度为1的区间为统计单位,统计各区间内随机数出现的频数,求出在各区间的概率,绘制图形,与参数为λ的真实负指数分布曲线进行对比。
下图为matlab 代码如下图所示,均值为4.996423,约等于5,方差为24.96761,约等于25,与实际情况相符。
此外,通过matlab统计的概率密度函数曲线与真实曲线基本重合(其中在0-1之间没有重合的原因是,实际情况是在0-1之间有无数个点,而matlab统计时以1为一个区间进行统计,只生成了一个统计项,而这无数个点的概率全部加到1点处,因此两条线没有重合,而且1点处的值远大于实际值,如果统计单位划分越细,0-1之间的拟合度更高),表明生成的随机数符合负指数分布。
matlab仿真教程
matlab仿真教程MATLAB是一款常用的科学计算软件,也是一个非常强大的数学仿真工具。
它可以用于解决各种数值计算问题,并且具有强大的绘图能力。
本文将介绍MATLAB的基本使用方法和仿真教程。
首先,我们需要了解MATLAB的基本界面。
MATLAB的界面通常分为几个主要部分,包括工作区、命令窗口、编辑器窗口、命令历史窗口、变量和文件目录窗口等。
在工作区中,我们可以查看当前的变量和数据;在命令窗口中,我们可以直接输入和运行MATLAB命令;而编辑器窗口则是用于编写和编辑MATLAB脚本和函数。
接下来,我们可以开始进行一些简单的数学仿真。
例如,我们可以用MATLAB计算一个数列的和。
在命令窗口中,我们可以输入以下命令:```x = 1:10;sum(x)```上述代码首先定义了一个长度为10的数列x,然后使用了sum函数计算了这个数列的和,并将结果显示在命令窗口中。
我们可以看到,MATLAB非常方便地完成了这个数学计算任务。
除了数学计算,MATLAB还可以进行各种科学计算和数据处理。
例如,我们可以使用MATLAB进行信号处理和滤波。
下面的代码演示了如何用MATLAB生成一个含有噪声的正弦信号,并对它进行滤波:```t = 0:0.01:2*pi;x = sin(t) + 0.1*randn(size(t));y = medfilt1(x, 5);subplot(2,1,1), plot(t,x), title('原始信号')subplot(2,1,2), plot(t,y), title('滤波后的信号')```上述代码首先生成了一个时间序列t,然后生成了一个含有噪声的正弦信号x。
接着,使用了medfilt1函数对信号x进行中值滤波,并将结果存储在变量y中。
最后,使用subplot函数将原始信号和滤波后的信号绘制在一张图中。
我们可以看到,MATLAB不仅提供了丰富的信号处理函数,而且具有强大的绘图能力。
Matlab中的随机数生成与随机模拟
Matlab中的随机数生成与随机模拟在科学研究、工程领域和现代计算机技术的工作中,随机数生成和随机模拟是非常重要的工具和方法。
Matlab作为一种强大的数值计算环境和编程语言,提供了丰富的工具包和函数库,可以帮助我们进行随机数生成和随机模拟的工作。
在本文中,我们将探讨Matlab中的随机数生成方法、常见的随机分布函数及其应用以及一些相关的技巧和注意事项。
Matlab提供了多种方法来生成随机数。
最常见的方法是使用rand函数,该函数可以生成一个[0,1)之间的均匀分布的随机数。
例如,当我们执行rand语句时,Matlab会生成一个随机数,如0.8467。
我们可以通过传递参数来生成多个随机数,例如rand(1,1000)将生成一个包含1000个随机数的向量。
除了rand函数,Matlab还提供了其他一些常见的随机数生成函数。
例如,randn函数可以生成符合标准正态分布的随机数。
这些随机数具有均值为0,方差为1的特性。
我们可以使用randn(1,1000)来生成一个包含1000个符合标准正态分布的随机数的向量。
除了均匀分布和正态分布外,Matlab还提供了其他一些常见的随机分布函数,例如指数分布、伽马分布、泊松分布等。
以指数分布为例,我们可以使用exprnd函数生成符合指定参数lambda的随机数。
例如,exprnd(1,1,1000)将生成一个包含1000个符合参数lambda为1的指数分布的随机数的向量。
在随机模拟中,我们可以使用这些随机分布函数来模拟实际问题。
以蒙特卡洛方法为例,它是一种基于随机模拟的数值计算方法。
在蒙特卡洛方法中,我们通过随机生成大量的样本来模拟实际问题,并根据这些样本进行数值计算和推理,从而得到问题的近似解。
Matlab提供了强大的工具和函数来支持蒙特卡洛模拟。
例如,我们可以使用rand函数来生成随机样本,并利用这些样本进行数值计算。
如果我们想模拟一个投掷硬币的实验,通过设定rand函数生成的随机数大于0.5为正面,小于0.5为反面,我们可以模拟多次投掷,从而获得正反面出现的概率。
Matlab中的概率分布与随机过程分析
Matlab中的概率分布与随机过程分析概率分布和随机过程是数学中重要的概念和工具,它们在各个领域中起着重要的作用。
在工程和科学领域中,通过对概率分布和随机过程的分析,我们可以揭示随机现象的本质规律,并为实际问题的建模与解决提供有效的数学工具。
Matlab是一款功能强大的科学计算软件,它内置了丰富的概率分布和随机过程分析工具,为研究者和工程师提供了便捷的分析方式和方法。
一、概率分布分析概率分布是研究随机变量取值的概率情况的数学模型。
在Matlab中,我们可以通过内置的统计工具箱进行概率分布的分析和计算。
以正态分布为例,我们可以使用Matlab中的normpdf函数绘制正态分布图形,使用normcdf函数计算正态分布的累积分布函数值,使用norminv函数计算正态分布的分位数。
通过对正态分布的概率密度函数、累积分布函数和分位数进行分析,我们可以对正态分布的性质和特点有更深入的了解。
除了正态分布,Matlab还内置了众多常见的概率分布函数,如均匀分布、指数分布、泊松分布等。
在实际问题中,我们可以使用这些函数进行概率分布的分析和建模。
例如,在金融风险管理中,我们可以使用泊松分布来描述某个事件发生的次数;在通信系统设计中,我们可以使用高斯分布来描述信号的噪声。
二、随机过程分析随机过程是一个随机变量的序列,它描述了随机事件在时间上的演化情况。
在实际问题中,我们经常需要对随机过程进行建模和分析。
Matlab提供了多种工具和函数来实现对随机过程的分析。
首先,我们可以使用随机过程的概率密度函数进行分析。
以马尔科夫链为例,我们可以使用Matlab中的markovchain函数创建一个马尔科夫链对象,并使用pdf函数计算其概率密度函数值。
通过对马尔科夫链的概率密度函数进行分析,我们可以研究其稳定性、收敛性等性质。
其次,我们可以使用随机过程的自相关函数和功率谱密度函数进行分析。
自相关函数描述了随机过程在不同时间点之间的相关程度,功率谱密度函数描述了随机过程在频域上的分布情况。
概率论问题MATLAB仿真求解程序
clc; clear; close all; a=10; b=3; p=0.55; S=0; N=10000; m=6; %甲的赌本 %乙的赌本 %甲赢的概率 % 计数设置为0 % 模拟次数 %设定随机数状态值(1 2 3 4 5 6 ),改变这个值可以进行不同的实验
%针与线相交则记数
运行结果
Pi_m_mean=mean(Pi_m)%显示 N 次迭代之后的圆周率 pi 均值
P_mean =0.318250000000000 Pi_m_mean =3.142648986529731
赌徒输光问题
两个赌徒甲、乙两人将进行一系列赌博。在每一局中甲获胜的概率为 p , 而乙获胜的概率为 q ( p + q = 1 )。在每一局后,失败者都要支付一元线给 胜利者。在开始时甲拥有赌本 a 元,而乙拥有赌本 b 元,两个赌徒直到甲 输光或乙输光为止。求甲输光的概率。
MATLAB实现Buffon问题仿真求解程序
程序1பைடு நூலகம்
clear all; L=1; d=2; m=0; n=10000; for k=1:n x=unifrnd(0,d/2); p=unifrnd(0,pi); if x<=L*sin(p)/2 m=m+1; else end end p=vpa(m/n,4) %针的长度; %平行线间的距离(d>L); %统计满足针与线相交条件的次数并赋初值; %投针试验次数 %迭代次数 %随机产生数的长度,即投针之后针中点与平行线的距离 %随机产生的针与线相交的角度 %针与线相交的条件 %针与线相交则记数
P =0.0676 Po =0.0656
Binomial(二项分布)的使用
概率与数理统计matlab实验报告.doc
概率与数理统计matlab实验报告.doc一、实验目的通过本次实验,从理论和实践两个角度来学习概率与数理统计的基本知识,包括概率的基本概念、随机变量的概念、分布函数及其性质、期望值和方差、协方差和相关系数、极限定理等。
二、实验原理概率的基本概念:样本空间、随机事件、概率、基本事件、基本概率随机变量的概念:离散随机变量、连续随机变量及其概率密度函数、分布函数分布函数及其性质:分布函数的定义、分布函数的性质期望值和方差:随机变量的期望值和方差的定义协方差和相关系数:协方差和相关系数的定义和性质极限定理:大数定理和中心极限定理三、实验内容与步骤实验一掷硬币实验实验内容:掷硬币实验,记录掷硬币结果并画出频率直方图和频率分布图。
实验步骤:2.使用rand函数模拟掷硬币实验。
设定投掷仿真次数,通过ceil(rand(1,n)*2)-1产生等概率的0和1。
3.统计投掷结果并画出频率直方图。
实验二抛色子实验实验内容:抛色子实验,记录抛色子结果、投掷次数,并画出柱形图。
1.定义一个变量来存储抛色子的结果。
实验三正态分布实验实验内容:正态分布实验,生成符合正态分布的随机数,并绘制该随机变量的概率密度函数和分布函数图像。
1.使用normrnd函数生成符合正态分布的随机数。
2.计算随机变量的概率密度函数和分布函数。
实验四中心极限定理实验实验内容:中心极限定理实验,通过多次模拟,验证中心极限定理的正确性。
1.使用rand函数模拟实验。
2.计算多次试验结果的平均值和标准差。
3.统计多次试验结果,并画出概率密度函数和分布函数图像。
四、实验结论通过本次实验,可以初步了解概率与数理统计的基本概念,从而更好地理解随机现象的本质。
同时,通过实验的方式,可以更加生动直观地展示和验证概率与数理统计的各种经典理论,如期望值和方差、协方差和相关系数等。
此外,实验还通过各种模拟方式,向我们演示了中心极限定理的成立条件和具体表现,从而让我们更加深入地理解这一经典定理的内涵和实际意义。
matlab概率分布程序,常见的概率分布(matlab作图)
matlab概率分布程序,常见的概率分布(matlab作图)⼀、常见的概率分布表1.1 概率分布分类表连续随机变量分布连续统计量分布离散随机变量分布分布分布⼆项分布连续均匀分布⾮中⼼ 分布离散均匀分布(Gamma)分布分布⼏何分布指数分布⾮中⼼ 分布超⼏何分布正态分布分布负⼆项分布对数正态分布⾮中⼼ 分布泊松分布Weibull分布Rayleigh分布⼆、MATLAB为常见分布提供的五类函数1) 概率密度函数(pdf);2) (累积)分布函数(cdf);3) 逆(累积)分布函数(icdf);4) 随机数发⽣器(random);5) 均值和⽅差(stat).1、概率密度函数表1.2 概率密度函数(pdf)函数名称函数说明调⽤格式normpdf正态分布Y=normpdf (X, MU, SIGMA)chi2pdf分布Y=chi2pdf (X, N)tpdf分布Y=tpdf (X, N)fpdf分布Y=fpdf (X, N1, N2)注意: Y=normpdf (X, MU, SIGMA)的SIGMA是指标准差 , ⽽⾮ .【例1-2】 绘制标准正态分布 的概率密度图.x=-4:0.1:4;y=normpdf(x,0,1);plot(x,y)title('N(0,1)的概率密度曲线图')图1-22、累积分布函数表1.3 累积分布函数(cdf)函数名称函数说明调⽤格式normcdf正态分布P=normcdf (X, MU, SIGMA)chi2cdf分布P=chi2cdf (X, N)tcdf分布P=tcdf (X, N)fcdf分布P=fcdf (X, N1, N2)【例1-3】求服从标准正态分布的随机变量落在区间[-2, 2]上的概率. >> P=normcdf ([-2, 2])ans = 0.0228 0.9772>> P(2)-P(1)ans = 0.95453、逆累积分布函数 (⽤于求分位点)表1.4 逆累积分布函数(icdf)函数名称函数说明调⽤格式norminv正态分布X=norminv (P, MU, SIGMA)chi2inv分布X=chi2inv (P, N)tinv分布X=tinv (P, N)finv分布X=finv (P, N1, N2)【例1-4】(书P22例1.13) 求下列分位数:(i) ; (ii) ; (iii) ; (iv) .>> u_alpha=norminv(0.9,0,1)u_alpha = 1.2816>> t_alpha=tinv(0.25,4)t_alpha = -0.7407>> F_alpha=finv(0.1,14,10)F_alpha = 0.4772>> X2_alpha=chi2inv(0.025,50)X2_alpha = 32.35744、随机数发⽣函数表1.5 随机数发⽣函数(random)函数名称函数说明调⽤格式normrnd正态分布R=normrnd(MU, SIGMA, m, n)chi2rnd分布R=chi2rnd(N, m, n)trnd分布R=trnd(N, m, n)frnd分布R=frnd(N1, N2, m, n)5、均值和⽅差表1.6 常见分布的均值和⽅差函数(stat)函数名称函数说明调⽤格式unifstat连续均匀分布: ,[M,V]=unifstat (A, B)expstat指数分布: ,[M,V]=expstat (MU)normstat正态分布: ,[M,V]=normstat (MU, SIGMA)chi2stat分布: ,[M,V]=chi2stat (N)tstat分布: ,[M,V]=tstat (N)(N≥2)fstat分布: ,[M,V]=fstat (N1, N2)binostat⼆项分布,[M,V]=binostat (N, p)poisstat泊松分布: ,[M,V]=poisstat (LAMBDA)注意: 如果省略调⽤格式左边的[M, V], 则只计算出均值.三、常⽤的统计量表1.7 常⽤统计量函数名称函数说明调⽤格式mean样本均值m=mean(X)range样本极差y=range(X)std样本标准差y=std(X)var样本⽅差y=var(X), y=var(X, 1)corrcoef相关系数R=corrcoef (X)cov协⽅差矩阵C=cov(X), C=cov(X, Y)moment任意阶中⼼矩m=moment(X, order)说明:(1) y=var(X) ——计算X中数据的⽅差. .y=var(X, 1) —— , 得到样本的⼆阶中⼼矩 (转动惯量).(2) C=cov(X) ——返回⼀个协⽅差矩阵, 其中输⼊矩阵X的每列元素代表着⼀个随机变量的观测值. 如果X为n×m的矩阵, 则C为m×m的矩阵.(3) var(X)=diag(cov(X)), std(X)=sqrt(diag(cov(X))).。
概率论与数理统计的MATLAB实现讲稿
第9章 概率论与数理统计的MATLAB 实现MATLAB 总包提供了一些进行数据统计分析的函数,但不完整。
利用MATLAB 统计工具箱,可以进行基本概率和数理统计分析,以及进行比较复杂的多元统计分析。
本章主要针对大学本科的概率统计课程介绍工具箱的部分功能。
9.1 随机变量及其分布利用统计工具箱提供的函数,可以比较方便地计算随机变量的分布律(概率密度函数)和分布函数。
9.1.1 离散型随机变量及其分布律如果随机变量全部可能取到的不相同的值是有限个或可列个无限多个,则称为离散型随机变量。
MATLAB 提供的计算常见离散型随机变量分布律的函数及调用格式: 函数调用格式(对应的分布) 分布律y=binopdf(x,n,p)(二项分布) )()1(),|(),,1,0(x I p p x n p n x f n xn x --⎪⎪⎭⎫ ⎝⎛=y=geopdf(x,p)(几何分布) xp p p x f )1()|(-= ),1,0( =xy=hygepdf(x,M,K,n)(超几何分布) ⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫ ⎝⎛=n M x n K M x K n K M x f ),,|(y=poisspdf(x,lambda)(泊松分布) λλλ-=e x x f x !)|(),1,0( =x y=unidpdf(x,n)(离散均匀分布) NN x f 1)|(=9.1.2 连续型随机变量及其概率密度对于随机变量X 的分布函数)(x F ,如果存在非负函数)(x f ,使对于任意实数x 有⎰∞-=x dt t f x F )()(则称X 为连续型随机变量,其中函数)(x f 称为X 的概率密度函数。
MA TLAB 提供的计算常见连续型随机变量分布概率密度函数的函数及调用格式:函数调用格式(对应的分布) 概率密度函数y=betapdf(x,a,b)(β分布) )10()1(),(1),|(11<<-=--x x x b a B b a x f b ay=chi2pdf(x,v)(卡方分布) )2(2)|(2212v exv x f v x v Γ=--)0(≥xy=exppdf(x,mu)(指数分布) μμμxe xf -=1)|()0(≥xy=fpdf(x,v1,v2)(F 分布) 2211222121212121111)2()2()2(),|(v v v v v x v x vv v v v v v v x f +-⎪⎪⎭⎫ ⎝⎛+⎪⎪⎭⎫ ⎝⎛ΓΓ+Γ= y=gampdf(x,a,b)(伽马分布) b xa a e x ab b a x f --Γ=1)(1),|()0(≥xy=normpdf(x,mu,sigma)(正态分布) 22)(21),|(σμπσσμ--=x ex fy=lognpdf(x,mu,sigma)(对数正态分布) 22)(ln 21),|(σμπσσμ--=x ex x fy=raylpdf(x,b)(瑞利分布) 222)|(b x e b x b x f -=y=tpdf(x,v)(学生氏t 分布) 2121)2()21()|(+-⎪⎪⎭⎫ ⎝⎛+Γ+Γ=v v x v v v v x f πy=unifpdf(x,a,b)(连续均匀分布) )(1),|(],[x I ab b a x f b a -=y=weibpdf(x,a,b)(威布尔分布) )(),|(),0(1x I eabx b a x f bax b ∞--= 比如,用normpdf 函数计算正态概率密度函数值。
Matlab中的随机数生成方法与应用案例
Matlab中的随机数生成方法与应用案例引言:随机数在数学、统计学和计算机科学等领域中具有重要的应用价值。
在大数据分析、模拟实验以及密码学等领域,随机数生成方法的选择和应用至关重要。
Matlab作为一种常用的科学计算软件,提供了多种随机数生成方法和函数。
本文将介绍Matlab中常用的随机数生成方法,以及如何在实际应用中选择合适的方法来满足需求。
一、Matlab中的随机数生成方法1. 均匀分布随机数生成方法Matlab中的`rand`函数可以生成一个0到1之间的均匀分布的随机数。
该函数返回的随机数是一个矩阵,可以通过设定参数来控制矩阵的大小。
```matlabx = rand(1, 100); % 生成一个1行100列的矩阵,每个元素在0到1之间```2. 高斯分布随机数生成方法Matlab中的`randn`函数可以生成服从均值为0,方差为1的标准正态分布的随机数。
该函数返回的随机数也是一个矩阵,大小也可以通过参数进行控制。
```matlabx = randn(1, 100); % 生成一个1行100列的矩阵,每个元素满足标准正态分布```3. 二项分布随机数生成方法Matlab中的`binornd`函数可以生成二项分布的随机数。
该函数需要指定实验次数和成功概率,并返回符合二项分布的随机数。
```matlabx = binornd(10, 0.5); % 进行10次实验,每次成功的概率为0.5,返回符合二项分布的随机数```4. 泊松分布随机数生成方法Matlab中的`poissrnd`函数可以生成泊松分布的随机数。
该函数需要指定均值,并返回符合泊松分布的随机数。
```matlabx = poissrnd(5); % 均值为5的泊松分布随机数```5. 均匀整数分布随机数生成方法Matlab中的`randi`函数可以生成指定范围内的均匀分布的整数随机数。
该函数需要指定随机数的范围和生成的矩阵大小。
matlab 任意分布 随机数生成函数
matlab 任意分布随机数生成函数Matlab是一种常用的数学软件,它提供了各种函数来生成随机数。
其中包括生成符合任意分布的随机数的函数。
本文将介绍一些常用的Matlab函数,用于生成服从不同分布的随机数。
我们来介绍一种常见的分布——均匀分布。
均匀分布是指在一定的范围内,随机变量的取值概率是相等的。
在Matlab中,可以使用`rand`函数来生成服从均匀分布的随机数。
例如,要生成一个介于0和1之间的随机数,可以使用以下代码:```x = rand;```如果要生成一个介于a和b之间的随机数,可以使用以下代码:```x = a + (b-a)*rand;```接下来,我们来介绍一种常见的分布——正态分布。
正态分布又称为高斯分布,是一种在统计学中非常重要的分布。
在Matlab中,可以使用`randn`函数来生成服从标准正态分布(均值为0,标准差为1)的随机数。
例如,要生成一个服从标准正态分布的随机数,可以使用以下代码:```x = randn;```如果要生成一个服从均值为mu,标准差为sigma的正态分布的随机数,可以使用以下代码:```x = mu + sigma*randn;```除了均匀分布和正态分布,Matlab还提供了许多其他常见的分布生成函数。
例如,可以使用`randi`函数来生成服从离散均匀分布的随机整数。
例如,要生成一个介于a和b之间的随机整数,可以使用以下代码:```x = randi([a, b]);```如果要生成一个服从泊松分布的随机整数,可以使用`poissrnd`函数。
例如,要生成一个服从参数为lambda的泊松分布的随机整数,可以使用以下代码:```x = poissrnd(lambda);```Matlab还提供了许多其他分布的生成函数,包括二项分布、负二项分布、指数分布、伽马分布等等。
使用这些函数可以方便地生成符合不同分布的随机数。
除了生成单个随机数,Matlab还提供了生成随机矩阵的函数。
概率分布简介及其matlab实现
几种常见的概率分布简介及其matlab 实现1.二项分布在n 次独立重复的伯努利试验中,设每次试验中事件A 发生的概率为p 。
用X 表示n 重伯努利试验中事件A 发生的次数,则X 的可能取值为0,1,…,n,且对每一个k (0≤k ≤n ),事件{X=k}即为“n 次试验中事件A 恰好发生k 次”,随机变量X 的离散概率分布即为二项分布(Binomial Distribution )如果(也就是说,X 是服从二项分布的随机变量),那么X 的期望值为:E(X)=np X 的方差为:D(X)=np(1-p)Matlab 程序实现:clear all;clc;x=1:30;y=binopdf(x,300,0.05);%产生一个n=300,p=0.05的二项分布;figure;plot(x,y,'r*');title('二项分布(n=300,p=0.05)');程序运行结果:2.泊松分布泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生次数。
泊松分布适合于描述单位时间内随机事件发生的次数。
泊松分布的概率函数为:()01k P X k e ,k ,,...k !λλ-===泊松分布的期望和方差均为λ。
Matlab 程序实现:clear all;clc;x=1:50;y=poisspdf(x,25); %泊松分布,其lambda=25figure;plot(x,y,'r+');title('泊松分布');程序运行结果:3.几何分布几何分布(Geometric distribution )是离散型概率分布。
其中一种定义为:在n 次伯努利试验中,试验k 次才得到第一次成功的机率。
详细地说,是:前k-1次皆失败,第k 次成功的概率。
几何分布是帕斯卡分布当r=1时的特例。
在伯努利试验中,成功的概率为p ,若ξ表示出现首次成功时的试验次数,则ξ是离散型随机变量,它只取正整数,且有P(ξ=k)=(1-p)的(k-1)次方乘以p (k=1,2,…,0<p<1),此时称随机变量ξ服从几何分布。
概率论matlab实验报告
概率论与数理统计matlab上机实验报告班级:学号:姓名:指导老师:实验一常见分布的概率密度、分布函数生成[实验目的]1. 会利用MATLAB软件计算离散型随机变量的概率,连续型随机变量概率密度值。
2.会利用MATLAB软件计算分布函数值,或计算形如事件{X≤x}的概率。
3.会求上α分位点以及分布函数的反函数值。
[实验要求]1.掌握常见分布的分布律和概率密度的产生命令,如binopdf,normpdf2. 掌握常见分布的分布函数命令,如binocdf,normcdf3. 掌握常见分布的分布函数反函数命令,如binoinv,norminv[实验内容]常见分布的概率密度、分布函数生成,自设参数1、X~B(20,0.4)(1)P{恰好发生8次}=P{X=8}(2)P{至多发生8次}=P{X<=8}(1)binopdf(8,20,0.4)ans =0.1797(2)binocdf(8,20,0.4)ans =0.59562、X~P(2)求P{X=4}poisspdf(4,2)ans =0.09023、X~U[3,8](1)X=5的概率密度(2)P{X<=6}(1) unifpdf(5,3,8)ans =0.2000(2) unifcdf(6,3,8)ans =0.60004、X~exp(3)(1)X=0,1,2,3,4,5,6,7,8时的概率密度(2)P{X<=8}注意:exp(3)与教材中参数不同,倒数关系(1)exppdf(0:8,3)ans =Columns 1 through 30.3333 0.2388 0.1711Columns 4 through 60.1226 0.0879 0.0630Columns 7 through 90.0451 0.0323 0.0232(2) expcdf(8,3)ans =0.93055、X~N(8,9)(1)X=3,4,5,6,7,8,9时的概率密度值(2) X=3,4,5,6,7,8,9时的分布函数值(3)若P{X<=x}=0.625,求x(4)求标准正态分布的上0.025分位数(1)normpdf(3:9,8,3)ans =Columns 1 through 30.0332 0.0547 0.0807 Columns 4 through 60.1065 0.1258 0.1330 Column 70.1258(2)normcdf(3:9,8,3)ans =Columns 1 through 30.0478 0.0912 0.1587 Columns 4 through 60.2525 0.3694 0.5000 Column 70.6306(3)norminv(0.625,8,3)ans =8.9559(4)norminv(0.975,0,1)ans =1.96006、X~t(3)(1)X=-3,-2,-1,0,1,2,3时的概率密度值(2)X=-3,-2,-1,0,1,2,3时的分布函数值(3)若P{X<=x}=0.625,求x(4)求t分布的上0.025分位数(1)tpdf(-3:3,3)ans =Columns 1 through 30.0230 0.0675 0.2067 Columns 4 through 60.3676 0.2067 0.0675 Column 70.0230(2)tcdf(-3:3,3)ans =Columns 1 through 30.0288 0.0697 0.1955 Columns 4 through 60.5000 0.8045 0.9303 Column 70.9712(3)tinv(0.625,3)ans =0.3492(4)tinv(0.975,3)ans =3.18247、X~卡方(4)(1)X=0,1,2,3,4,5,6时的概率密度值(2) X=0,1,2,3,4,5,6时的分布函数值(3)若P{X<=x}=0.625,求x(4)求卡方分布的上0.025分位数(1)chi2pdf(0:6,4)ans =Columns 1 through 30 0.1516 0.1839 Columns 4 through 60.1673 0.1353 0.1026 Column 70.0747(2)chi2cdf(0:6,4)ans =Columns 1 through 30 0.0902 0.2642 Columns 4 through 60.4422 0.5940 0.7127 Column 70.8009(3)chi2inv(0.625,4)ans =4.2361(4)chi2inv(0.975,4)ans =11.14338、X~F(4,9)(1)X=0,1,2,3,4,5,6时的概率密度值(2) X=0,1,2,3,4,5,6时的分布函数值(3)若P{X<=x}=0.625,求x(4)求F分布的上0.025分位数(1)fpdf(0:6,4,9)ans =Columns 1 through 30 0.4479 0.1566 Columns 4 through 60.0595 0.0255 0.0122 Column 70.0063(2)fcdf(0:6,4,9)ans =Columns 1 through 30 0.5442 0.8218Columns 4 through 60.9211 0.9609 0.9788Column 70.9877(3)finv(0.625,4,9)ans =1.1994(4)finv(0.975,4,9)ans =4.7181实验二概率作图[实验目的]1.熟练掌握MATLAB软件的关于概率分布作图的基本操作2.会进行常用的概率密度函数和分布函数的作图3.会画出分布律图形[实验要求]1.掌握MATLAB画图命令plot2.掌握常见分布的概率密度图像和分布函数图像的画法[实验内容]任选四种分布,自设参数(已画八种分布图像,可熟悉各分布特点)1、X~B(20,0.4)代码:x=0:20;y=binopdf(x,20,0.4)plot(x,y,'.')结果:2、X~exp(3)概率密度图像代码:x=0:0.01:15;y=exppdf(x,3)plot(x,y)结果:分布函数代码:x=-1:0.01:15;y=expcdf(x,3)plot(x,y)结果:3、X~P(4)概率密度图形代码:x=0:10;y=poisspdf(x,4)plot(x,y,'.')结果:分布函数图形代码:x=0:0.01:10; y=poisscdf(x,4) plot(x,y)结果:4、X~U(3,8)概率密度图形代码:x=0:0.01:10;y=unifpdf(x,3,8)plot(x,y,'.')结果:分布函数图形代码:x=0:0.01:10;y=unifcdf(x,3,8) plot(x,y)结果:5、X~N(4,9)概率密度图形代码:x=-10:0.01:18;y=normpdf(x,4,3); plot(x,y)结果:分布函数图形代码:x=-10:0.01:18;y=normcdf(x,4,3); plot(x,y)结果:同一坐标系,均值是4,标准差分别为1,2,3的正态分布概率密度图形代码:x=-5:0.01:15;y1=normpdf(x,4,1);y2=normpdf(x,4,2);y3=normpdf(x,4,3);plot(x,y1,x,y2,x,y3)结果:6、X~t(3)概率密度图形代码:x=-10:0.01:10;y=tpdf(x,3);plot(x,y)结果:分布函数图形代码:x=-10:0.01:10; y=tcdf(x,3); plot(x,y)结果:7、X~卡方(4)概率密度图形代码:x=0:0.01:15;y=chi2pdf(x,4);plot(x,y)结果:分布函数图形代码:x=0:0.01:15; y=chi2cdf(x,4); plot(x,y)结果:8、X~F(4,9)概率密度图形代码:x=0:0.001:10;y=fpdf(x,4,9);plot(x,y)结果:分布函数图形代码:x=0:0.001:10; y=fcdf(x,4,9); plot(x,y)结果:实验三数字特征[实验目的]1 加深对数学期望,方差的理解2理解数学期望,方差的意义,以及具体的应用3 加深对协方差,相关系数的理解4 了解协方差,相关系数的具体的应用[实验要求]1 概率与频率的理论知识,MATLAB软件2 协方差,相关系数的理论知识,MATLAB命令cov,corrcoef [实验内容]P101-11代码:exp=[];price=[-200 100];exp(1)=expcdf(1,4)exp(2)=1-exp(1)Ey=exp*price'结果:exp =0.2212exp =0.2212 0.7788Ey =33.6402即平均获利为Ey=e^(-1/4)*300-200=33.6402p101-13代码:Syms x yfxy=(x+y)/3;Ex=int(int(fxy*x,y,0,1),x,0,2)Ey=int(int(fxy*y,y,0,1),x,0,2)Exy=int(int(fxy*x*y,y,0,1),x,0,2)E=int(int(fxy*(x^2+y^2),y,0,1),x,0,2)结果:Ex =Ey =5/9Exy =2/3E =13/6>>P102-22代码:Syms x yfxy=1;Ex=int(int(fxy*x,y,-x,x),x,0,1) Ey=int(int(fxy*y,y,-x,x),x,0,1)Ex2=int(int(fxy*x^2,y,-x,x),x,0,1) Ey2=int(int(fxy*y^2,y,-x,x),x,0,1) Dx=Ex2-Ex^2Dy=Ey2-Ey^2结果:Ex =Ey =Ex2 =1/2Ey2 =1/6Dx =1/18Dy =1/6>>P103-26代码:Syms x yfxy=2-x-y;Ex=int(int(fxy*x,y,0,1),x,0,1);Ey=int(int(fxy*y,y,0,1),x,0,1);Ex2=int(int(fxy*x^2,y,0,1),x,0,1);Ey2=int(int(fxy*y^2,y,0,1),x,0,1);Dx=Ex2-Ex^2;Dy=Ey2-Ey^2;Exy=int(int(fxy*x*y,y,0,1),x,0,1);Covxy=Exy-Ex*Eyrxy=Covxy/(sqrt(Dx)*sqrt(Dy))D=4*Dx+Dy结果:Covxy =-1/144rxy =-1/11D =55/144实验四统计中的样本数字特征实验五两个正态总体均值差,方差比的区间估计[实验目的]1掌握两个正态总体均值差,方差比的区间估计方法2会用MATLAB求两个正态总体均值差,方差比的区间估计[实验要求]两个正态总体的区间估计理论知识[实验内容]P175-27代码:x1=[0.143 0.142 0.143 0.137]x2=[0.140 0.142 0.136 0.138 0.140] x=mean(x1)y=mean(x2)s1=var(x1)s2=var(x2)s=sqrt((3*s1+4*s2)/7)t=tinv(0.975,7)d1=(x-y)-t*s*sqrt(1/4+1/5)d2=(x-y)+t*s*sqrt(1/4+1/5)结果:s =0.0026t =2.3646d1 =-0.0020d2 =0.0061即置信区间为(-0.0020,0.0061)P175-28代码:u=norminv(0.975,0,1)s=sqrt(0.035^2/100+0.038^2/100)d1=(1.71-1.67)-u*sd2=(1.71-1.67)+u*s结果:u =1.9600s =0.0052d1 =0.0299d2 =0.0501>>即置信区间为(0.0299,0.0501)P175-30代码:f1=finv(0.975,9,9)f2=finv(0.025,9,9)f3=finv(0.95,9,9)f4=finv(0.05,9,9)s12=0.5419s22=0.6065d1=s12/s22/f1d2=s12/s22/f2d3=s12/s22/f3d4=s12/s22/f4结果:d1 =0.2219d2 =3.5972d3 =0.2811d4 =2.8403>>即置信区间为(0.2219,3.5972),置信下界为0.2811,置信上界为2.8403实验五假设检验[实验目的]1 会用MATLAB进行单个正态总体均值及方差的假设检验2 会用MATLAB进行两个正态总体均值差及方差比的假设检验[实验要求]熟悉MATLAB进行假设检验的基本命令与操作[实验内容]P198-2原假设H0:平均尺寸mu=32.25;H1:平均尺寸mu<>32.25方差已知,用ztest代码:x=[32.56,29.66,31.64,30.00,31.87,31.03][h,sig,ci,zval]=ztest(x,32.25,1.1,0.05)[h,sig,ci,zval]=ztest(x,32.25,1.1,0.01)(注:h是返回的一个布尔值,h=0,接受原假设,h=1,拒绝原假设;sig表示假设成立的概率;ci为均值的1-a的置信区间;zval为Z统计量的值)结果:h =1sig =0.0124ci =30.2465 32.0068zval =-2.5014h =sig =0.0124ci =29.9699 32.2834zval =-2.5014即a=0.05时,拒绝原假设H0;a=0.01时,接受原假设H0p198-3原假设H0:总体均值mu=4.55;H1:总体均值mu<>4.55方差未知,用ttest代码:x=[4.42,4.38,4.28,4.40,4.42,4.35,4.37,4.52,4.47,4.56][h,sig,ci,tval]=ttest(x,4.55,0.05)结果:h =1sig =6.3801e-004ci =4.3581 4.4759tval =tstat: -5.1083df: 9sd: 0.0823h=1,即拒绝原假设H0p198-10是否认为是同一分布需要分别检验总体均值和方差是否相等原假设H0:mu1-mu2=0;H1:mu1-mu2<>0代码:x=[15.0,14.5,15.2,15.5,14.8,15.1,15.2,14.8]y=[15.2,15.0,14.8,15.2,15.1,15.0,14.8,15.1,14.8][h,sig,ci]=ttest2(x,y,0.05)结果:h =sig =0.9172ci =-0.2396 0.2646h=0,即接受原假设H0,mu1-mu2=0,两分布的均值相等;验证方差相等的matlab方法没有找到可采用以下语句整体检验两个分布是否相同,检验两个样本是否具有相同的连续分布[ h ,sig, ksstat]=kstest2(x,y,0.05)原假设H0:两个样本具有相同连续分布H1:两个样本分布不相同代码:x=[15.0,14.5,15.2,15.5,14.8,15.1,15.2,14.8]y=[15.2,15.0,14.8,15.2,15.1,15.0,14.8,15.1,14.8][ h ,sig, ksstat]=kstest2(x,y,0.05)结果:h =sig =0.9998ksstat =0.1528>>h=0,即接受原假设H0,两个样本有相同的连续分布。
概率统计在MATLAB中的实现方法解析
概率统计在MATLAB中的实现方法解析概率统计是一门研究随机现象的规律性和不确定性的学科,广泛应用于各个领域。
而MATLAB是一种强大的科学计算软件,可以在概率统计领域中提供很多实用的工具和方法。
本文将探讨概率统计在MATLAB中的实现方法,帮助读者更好地理解和应用于实践。
一、概率分布的生成和拟合在概率统计中,对于一些已知的概率分布,我们常常需要生成符合该分布的随机数,或者通过已有的样本数据对分布进行拟合。
在MATLAB中,可以使用一些函数来实现这些操作。
首先,对于已知的概率分布,例如正态分布(高斯分布),可以使用normrnd()函数生成符合该分布的随机数。
该函数的输入参数包括均值和标准差,输出为符合正态分布的随机数。
例如,我们可以生成100个符合均值为0,标准差为1的正态分布随机数:```MATLABx = normrnd(0, 1, 100, 1);```对于已有的样本数据,我们可以使用fitdist()函数对数据进行概率分布的拟合。
该函数可以自动选择合适的分布类型,并给出对应的参数估计值。
例如,我们有一组样本数据x,需要对其进行正态分布的拟合:```MATLABdist = fitdist(x, 'Normal');```通过fitdist()函数返回的dist对象,我们可以获取该分布的参数估计值、置信区间等信息。
二、假设检验和置信区间估计假设检验和置信区间估计是概率统计中常用的分析方法,用于判断样本数据是否符合某个假设、计算参数估计的可信度等。
在MATLAB中,可以使用一些函数来实现假设检验和置信区间估计。
对于假设检验,MATLAB提供了ttest2()和chi2gof()等函数,用于分别进行两样本t检验和卡方检验。
例如,我们有两组样本数据x和y,需要进行两样本t检验:```MATLAB[h, p] = ttest2(x, y);```通过ttest2()函数返回的h值可以判断是否拒绝原假设,p值则表示检验结果的显著性。
matlab中指数分布的随机数
matlab中指数分布的随机数
在MATLAB中,可以使用`exprnd`函数生成指数分布的随机数。
指数分布是描述事件发生时间间隔的概率分布,通常用于模拟诸如排队、可靠性分析等领域的事件间隔时间。
要生成指数分布的随机数,可以使用以下语法:
matlab.
X = exprnd(1/lambda, m, n)。
其中,`lambda`是指数分布的参数,表示单位时间内事件发生的平均次数。
`m`和`n`分别表示生成随机数的矩阵维度。
例如,如果要生成一个服从参数为2的指数分布的随机数,可以使用以下代码:
matlab.
X = exprnd(1/2, 1, 1000)。
这将生成一个包含1000个元素的行向量,这些元素服从参数为2的指数分布。
除了`exprnd`函数之外,还可以使用`random`函数来生成指数分布的随机数,语法如下:
matlab.
X = random('Exponential', 1/lambda, m, n)。
同样,`lambda`是指数分布的参数,`m`和`n`是生成随机数的矩阵维度。
总的来说,在MATLAB中生成指数分布的随机数非常简单,只需要使用`exprnd`或`random`函数并指定参数即可。
这些随机数可以用于模拟实际问题中的事件间隔时间,进行概率分布分析等。
第10章 用MATLAB解决概率问题
连续型随机变量的期望
• 应用举例 • 例 17 已知随机变量X的概率
3x , 0 x 1 P( x) 0, 其它
2
求EX和E(4X-1)。
• • • • • • • • • •
程序: 解:在Matlab编辑器中建立M文件LX0817.m: syms x p_x=3*x^2; EX=int(x*p_x,0,1) EY=int((4*x-1)*p_x,0,1) 运行结果为: EX = 3/4 EY = 2
指数分布
正态分布 卡方分布 T分布 F分布
expcdf(x,lambda)
normcdf(x,mu,sigma) chi2cdf(x,n) tcdf(x,n) fcdf(x,n1,n2)
应用举例
• 例7 某公共汽车站从上午7:00起每15分钟来一班 车。若某乘客在7:00到7:30间任何时刻到达此站 是等可能的,试求他候车的时间不到5分钟的概率。
应用举例
• 例16 随机抽取6个滚珠测得直径(mm)如下: 11.70 12.21 11.90 11.91 12.32 12.32 试求样本平均值。 • 程序: >> X=[11.70 12.21 11.90 11.91 12.32 12.32];
>> mean(X)
• 则结果显示如下: ans=12.0600
(2) 方差
• 离散型随机变量的方差及样本方差 • 方差 设X的分布律为 由
PX xk Pk , k 1.2,...
D( X ) E[(X EX ) ] E( X ) E ( X )
2 2 2
则方差 DX=sum(X.^2*P)-(EX).^2
• 标准差:
MATLAB系统建模与仿真实验
MATLAB系统建模与仿真实验系统建模与仿真实验报告报告一:产生10中独立分布的随机数,并检验其一、二阶距的性质。
1、[0,1]区间的均匀分布采用乘同余法产生均匀分布在(0,1)之间的随机数。
乘同余法的递推公式为:1(mod )n n x x M λ+=一般情况下,323a λ=±,a 为整数,M 于计算机的字长有关,2m M =,m 为16或32,x 的初值为(1)21b x =+。
利用MATLAB 实现,代码如下:function u=undistribution(a,b,m);%乘同余法lam=8*a-3; M=pow2(m); x(1)=pow2(b)+1; for i=2:10000; y=lam*x(i-1); x(i)=mod(y,M); end u=x/M; end调用函数,并检验产生随机数的数字特性。
y=undistribution(3,2,32); hist(y,50); E=mean(y); D=var(y);title('0-1均匀分布直方图');text(0,-20,strcat('均值为',num2str(E)));text(0.77,-20,strcat('均值为',num2str(D)));00.10.20.30.40.50.60.70.80.910501001502002500-1均匀分布直方图均值为0.50227方差为0.0829332、标准正态分布高斯分布的概率密度函数:22()2()x u P x σ-=;首先利用前面产生均匀分布随机数的方法生成两组均匀分布的随机数u1,u2;利用公式:2)Z u π=,Z 服从高斯分布。
MATLAB 实现代码如下:u1=undistribution(3,2,32); u2=undistribution(2,3,32);z=sqrt(-2*log(u1)).*cos(2*pi*u2); hist(z,100); E=mean(z); D=var(z);title('标准正态分布直方图')text(-6,-40,strcat('均值为',num2str(E))); text(6,-40,strcat('方差为',num2str(D)));-6-4-202468050100150200250300350400450标准正态分布直方图均值为0.0081833方差为1.00253、指数分布指数分布的概率密度函数如下:,0()0,x e x P x λλ-?≥=??其它;首先利用前面产生均匀分布随机数的方法生成一组均匀分布的随机数u ;则数列1ln y u λ=-,为均值为λ,方差为2λ的指数分布随机数列。
matlab中随机数生成 -回复
matlab中随机数生成-回复如何在MATLAB中生成随机数随机数在MATLAB中被广泛应用于各种科学和工程领域,包括模拟实验、统计分析、数据生成和算法测试等。
本文将一步一步介绍如何在MATLAB 中生成随机数。
步骤一:了解随机数的种类在MATLAB中,有两种类型的随机数:均匀分布随机数和正态分布随机数。
均匀分布随机数是指在一定范围内,每个值出现的概率相等。
正态分布随机数是指符合正态分布概率密度函数的随机数。
步骤二:生成均匀分布随机数在MATLAB中,可以使用rand函数生成均匀分布随机数。
该函数返回一个0到1之间的随机数;如果需要生成某个范围内的随机数,可以通过线性变换实现。
以下是生成0到10之间均匀分布随机数的代码示例:matlabrandom_number = 10 * rand();若需要生成整个矩阵的随机值:matlabrandom_matrix = 10 * rand(m, n);其中m和n分别表示矩阵的行数和列数。
步骤三:生成指定范围的均匀分布随机数如果需要生成一个指定范围内的均匀分布随机数,可以通过线性变换实现。
以下是生成-5到5之间的均匀分布随机数的代码示例:matlabrandom_number = (b - a) * rand() + a;其中a和b分别表示指定范围的起始和结束值。
步骤四:生成正态分布随机数在MATLAB中,可以使用randn函数生成符合标准正态分布的随机数。
标准正态分布随机数的均值为0,方差为1。
以下是生成标准正态分布随机数的代码示例:matlabrandom_number = randn();若需要生成整个矩阵的随机值:matlabrandom_matrix = randn(m, n);步骤五:生成指定均值和方差的正态分布随机数如果需要生成一组具有指定均值和方差的正态分布随机数,可以通过线性变换和标准正态分布随机数实现。
以下是生成具有均值mu和方差sigma 的正态分布随机数的代码示例:matlabrandom_number = sigma * randn() + mu;其中mu和sigma分别表示指定的均值和方差。
概率部分MATLAB实验一(随机变量)
概率部分MATLAB实验一(随机变量及其分布)一、实验学时2学时二、实验目的1、掌握随机数的产生与操作命令2、掌握计算概率的命令3、掌握离散型与连续型随机变量有关的操作命令4、理解随机变量的分布三、实验准备1、复习随机变量及分布函数的概念2、复习离散型随机变量及其分布律和分布函数3、复习连续型随机变量及其概率密度函数和分布函数四、实验内容1、常见离散型随机变量分布的计算及图形演示(1)0-1分布、二项分布、泊松分布概率的计算;(2)0-1分布、二项分布、泊松分布的分布函数的计算;2、常见连续型随机变量分布的计算及图形演示(1)均匀分布、指数分布、正态分布概率密度函数的计算;(2)均匀分布、指数分布、正态分布的分布函数的计算;3、求单个随机变量落在某个区间内的概率4、求一个随机变量的函数的分布的计算五、软件命令MATLAB随机变量命令六、实验示例(一)关于概率密度函数(或分布律)的计算1、一个质量检验员每天检验500个零件。
如果1%的零件有缺陷,一天内检验员没有发现有缺陷零件的概率是多少?检验员发现有缺陷零件的数量最有可能是多少?【理论推导】设X 表示检验员每天发现有缺陷零件的数量,X 服从二项分布B(500,0.01)。
(1)5005000050099.0)01.01(01.0)0(=-==C X P (2)500*1%=5 【计算机实现的命令及功能说明】利用二项分布的概率密度函数binopdf()计算 格式:Y=binopdf(X,N,P)说明:(1)根据相应的参数N,P 计算X 中每个值的二项分布概率密度。
(2)输入的向量或矩阵时,X,N,P 必须形式相同;如果其中有一个按标量输入,则自动扩展成和其它输入具有相同维数的常数矩阵或数组。
(3)参数N 必须是正整数,P 中的值必须在区间【0,1】上。
【计算机实现的具体应用过程】(1)P=binopdf(0,500,0.01) %结果为0.0066 (2)y=binopdf([0:500],500,0.01) [x,i]=max(y)%结果为x=0.1764,i=6(i 是从0开始计算,所以此时取5)2、一个硬盘生产商观察到在硬盘生产过程中瑕疵的出现是随机的,且平均几率是每一个4GB 的硬盘中有两个瑕疵,这种几率是可以接受的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
概率特性仿真实验与程序-Matlab 仿真-随机数生成-负指数分布-k 阶
爱尔兰分布-超指数分布
使用Java 中的SecureRandom .nextDouble()生成一个0~1之间的随机浮点数,然后使用反函数法生成一个符合指数分布的随机变量(反函数求得为λ)
1ln(R x --=)。
指数分布的
参数λ为getExpRandomValue 函数中的参数lambda 。
生成一个指数分布的随机变量的代码如下,后面都将基于该函数生成一组负指数分布、K 阶爱尔兰分布、2阶超指数分布随机变量,然后将生成的随机数通过matlab 程序进行仿真,对随机数的分布特性进行验证。
生成一组参数为lambda (λ)的负指数分布的随机变量
通过下面的函数生成一组λ参数为lambda 的随机变量,其中size 表示随机变量的个数。
通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存在exp.txt 文件中,供下面介绍的matlab 程序分析。
通过genExp (1000000, 0.2)生成1000000个参数为0.2的随机变量,然后保存到exp.txt 中,然后使用下面的matlab 程序对这些随机数的性质进行验证,如果这些随机数符合λ=0.2的负指数分布,则其均值应为1/λ,即1/0.2=5,其方差应为1/λ2=1/(0.2*0.2)=25。
然后对这些随机数的概率分布进行统计分析,以长度为1的区间为统计单位,统计各区间内随机数出现的频数,求出在各区间的概率,绘制图形,与参数为λ的真实负指数分布曲线进行对比。
下图为matlab 代码
如下图所示,均值为4.996423,约等于5,方差为24.96761,约等于25,与实际情况相符。
此外,通过matlab统计的概率密度函数曲线与真实曲线基本重合(其中在0-1之间没有重合的原因是,实际情况是在0-1之间有无数个点,而matlab统计时以1为一个区间进行统计,只生成了一个统计项,而这无数个点的概率全部加到1点处,因此两条线没有重合,而且1点处的值远大于实际值,如果统计单位划分越细,0-1之间的拟合度更高),表明生成的随机数符合负指数分布。
生成一组参数为lambda(λ)的k阶爱尔兰分布的随机变量
通过下面的函数生成一组λ参数为lambda的k阶爱尔兰分布随机变量,其中size表示随机变量的个数,k表示阶数。
由于k阶爱尔兰分布是k个相同lambda的负指数分布的串联,因此可以将连续k个负指数分布的随机变量相加成为一个爱尔兰分布的随机变量,从而生成爱尔兰分布的随机变量,如下面程序所示。
通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存在erlang_k.txt文件中,供下面介绍的matlab程序分析。
通过genErlang(1000000, 0.2, 2)、genErlang(1000000, 0.2, 4)、genErlang(1000000, 0.2, 8)分别生成1000000个λ参数为0.2的2、4、8阶爱尔兰随机变量,然后分别保存到erlang_2.txt、erlang_4.txt、erlang_8.txt中,然后使用下面的matlab程序对这些随机数的性质进行验证,验证的方法与上面相同,对于k=2,则其均值应为k/λ,即2/0.2=10,其方差应为k/λ2=2/(0.2*0.2)=50;同理,对于k=4,均值应等于20,方差应等于100;对于k=8,均值应等于40,方差应等于200。
下图为matlab代码。
如下图所示,k=2时,均值为9.992167,约等于10,方差为49.93048,约等于50;k=4时,均值为20.00298,约等于20,方差为100.4140,约等于100;k=8时,均值为40.03118,约等于40,方差为200.4146,约等于200,以上结果都与实际情况符合。
生成一组2阶超指数分布的随机变量
通过下面的函数生成一组λ参数分别为lambda1和lambda2的2阶超指数分布随机变量,其中size表示随机变量的个数,lambda1和lambda2表示两个负指数分布的λ参数,这里指定进入分支1的概率为α1,进入分支2的概率为α2。
由于2阶超指数分布是2个λ参数分别为lambda1和lambda2的负指数分布的并联,且以一定概率进入各分支,因此可以根据概率随机的从两个λ参数不同的负指数分布中抽取一个随机变量作为一个超指数分布的随机变量,如下面程序所示。
通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存
在hyper_exp.txt文件中,供下面介绍的matlab程序分析。
通过genHyperExp(1000000, 0.2, 0.5)生成1000000个参数分别为0.2和0.5,α1=0.3、α2=0.7的超指数分布随机变量,然后保存到hyper_exp.txt中,使用下面的matlab程序对这些随机数的性质进行验证,验证的方法与上面相同,如果生成的随机数正确,均值应=α1/
λ1+α2/λ2=0.3/0.2+0.7/0.5=2.9,方差应=2*(α1/λ1^2+α2/λ2^2)-(α1/λ1+α2/λ2)^2=12.19。
下图为matlab代码。
如下图所示,均值为2.896629,约等于2.9,方差为12.17702,约等于12.19,以上结果与实际情况符合。