概率论问题MATLAB仿真求解程序
- 格式:pdf
- 大小:380.01 KB
- 文档页数:37
数学实验四(概率论)一.用MATLAB 计算随机变量的分布1.用MA TLAB 计算二项分布当随变量(),X B n p 时,在MATLAB 中用命令函数(,,)Px binopdf X n p =计算某事件发生的概率为p 的n 重贝努利试验中,该事件发生的次数为X 的概率。
例1 在一级品率为0.2的大批产品中,随机地抽取20个产品,求其中有2个一级品的概率。
解 在MATLAB 中,输入 >>clear>> Px=binopdf(2,20,0.2) Px =0.1369即所求概率为0.1369。
2.用MA TLAB 计算泊松分布当随变量()X P λ 时,在MATLAB 中用命令函数(,)P poisspdf x lambda =计算服从参数为lambda 的泊松分布的随机变量取值x 的概率。
用命令函数(,)P poisscdf x lambda =计算服从参数为lambda 的泊松分布的随机变量在[]0,x 取值的概率。
例2 用MATLAB 计算:保险公司售出某种寿险保单2500份.已知此项寿险每单需交保费120元,当被保人一年内死亡时,其家属可以从保险公司获得2万元的赔偿(即保额为2万元).若此类被保人一年内死亡的概率0.002,试求:(1)保险公司的此项寿险亏损的概率;(2)保险公司从此项寿险获利不少于10万元的概率; (3)获利不少于20万元的概率.利用泊松分布计算. 25000.0025np λ==⋅= (1) P(保险公司亏本)=()()15250025000(3020)1(15)10.0020.998kkk k P X P X C -=-<=-≤=-⋅∑=155051!k k e k -=-∑在MATLAB 中,输入 >> clear>> P1=poisscdf(15,5) P1 =0. 9999即 15505!k k e k -=∑= P1 =0.9999故 P(保险公司亏本)=1-0.9999=0.0001 (2) P(获利不少于10万元)=()()10102500250025000(30210)(10)0.0020.998k kk kk k P X P X CC -==-≥=≤=⋅≈∑∑ =10505!k k e k -=∑ 在MATLAB 中,输入 >>P=poisscdf(10,5) P =0.9863即 10505!k k e k -=∑=0.9863(3) P(获利不少于20万元)=()()525002500(30220)(5)0.0020.998k kk k P X P X C-=-≥=≤=⋅∑ =5505!k k e k -=∑ 在MATLAB 中,输入 >>P=poisscdf(5,5) P =0.6160即 5505!k k e k -=∑= 0.61603.用MA TLAB 计算均匀分布当随机变量(),X U a b 时,在MATLAB 中用命令函数(),,P unifpdf x a b =计算在区间[],a b 服从均匀分布的随机变量的概率密度在x 处的值。
概率特性仿真实验与程序-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仿真算法流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 问题定义与分析:明确要解决的问题或研究的系统。
确定输入和输出变量。
Matlab在《概率论与数理统计》教学中的应用概率论是《概率论与数理统计》课程中的重要部分,Matlab可以帮助学生更好地理解和应用概率论。
1. 随机数生成与概率计算Matlab可以生成符合不同分布的随机数,如正态分布、均匀分布等,并进行概率计算和统计推断。
以正态分布为例,使用命令“normrnd(mu,sigma,m,n)”可以生成一个mu为均值,sigma为标准差的n行m列的正态分布随机数矩阵。
使用函数“normpdf(x,mu,sigma)”可以计算正态分布的概率密度函数在x处的取值,使用函数“normcdf(x,mu,sigma)”可以计算正态分布的累积分布函数在x处的取值。
这些功能可以帮助学生更好地理解正态分布的概念和相关理论。
2. 离散随机变量的概率分布1. 数据描述与可视化Matlab可以帮助学生更好地进行数据描述和可视化。
使用命令“mean(x)”可以计算数据的平均值,使用命令“std(x)”可以计算数据的标准差,使用命令“hist(x)”可以绘制数据的直方图。
这些功能可以帮助学生更好地理解数据的基本特征和数据分布情况。
2. 参数估计与假设检验Matlab可以帮助学生完成参数估计和假设检验。
以t检验为例,使用命令“ttest(x,y)”可以进行两样本t检验,使用命令“ttest(x,m)”可以进行单样本t检验。
这些功能可以帮助学生更好地进行参数估计和假设检验的计算和分析。
结语综上所述,Matlab是一款重要的数学软件工具,在《概率论与数理统计》课程教学中发挥着重要的作用。
通过Matlab,学生可以更好地理解和应用概率论和数理统计的理论知识,提高他们的数据分析和计算能力。
Monte Carlo方法是一种通过随机抽样来解决数学问题的方法。
它的应用范围非常广泛,包括金融、物理、工程、统计学等领域。
本文主要介绍如何使用Monte Carlo方法来计算套圈概率,并给出相应的MATLAB程序。
1. 问题描述我们假设有一个正方形的围栏,内接一个圆。
现在我们随机向围栏内投掷小球,问小球落在正方形内但不在圆内的概率是多少?2. 模拟方法为了解决这个问题,我们可以使用Monte Carlo方法进行模拟。
具体步骤如下:(1) 在正方形内生成大量的随机点。
(2) 判断这些随机点是否落在圆内。
(3) 统计落在正方形内但不在圆内的点的个数。
(4) 计算概率。
3. MATLAB程序下面是用MATLAB编写的Monte Carlo程序:```matlab定义正方形和圆的参数side_length = 2; 正方形的边长radius = 1; 圆的半径生成随机点num_points = 1e6; 随机点的数量x = side_length*rand(num_points,1) - side_length/2; x坐标的范围是[-side_length/2, side_length/2]y = side_length*rand(num_points,1) - side_length/2; y坐标的范围是[-side_length/2, side_length/2]判断随机点是否落在圆内in_circle = x.^2 + y.^2 <= radius^2; 判断点是否在圆内统计落在正方形内但不在圆内的点的个数in_square_not_in_circle = sum(~in_circle);计算概率prob = in_square_not_in_circle / num_points;disp(['套圈概率为:' num2str(prob)]);上面的MATLAB程序首先定义了正方形和圆的参数,然后通过生成大量随机点,并判断这些点是否落在圆内来计算套圈概率。
第三章 概率论基础知识及其在matlab 中的实现概率论与应用数理统计十就是研究随机现象统计规律性的一门科学,本章学习随机 及其发生的概率,多维随机变量的分布规律,参数估计与假设检验,方差分析与回归分析等概率统计的基本方法以及它们在MATLAB 中实现方法。
3.1 随机时间及其概率3.1.1 古典概率及其模型由古典概率的定义知,古典概率基于这样两个原则:(1) 所有可能发生的结果只有有限个;(2)每一种可能出现的结果机会是相同的。
在MA TLAB 中提供了一个在[0,1]区间上均匀分布的随机函数rand,其命令格式为:命令格式1: rand(N)功能: 返回一个N N ⨯的随机矩阵命令格式2: rand(N,M)功能: 返回一个M N ⨯的随机矩阵命令格式2: rand(P1,P2,…,Pn)功能: 返回一个n P P P ⨯⨯⨯Λ21的随机矩阵可以用计算机模拟掷硬币这一过程,为了模拟硬币出现正面或反面,规定随机数小于0.5时为反面,否则为正面,可以用round ()函数将其变成0—1矩阵,然后将整个矩阵的各元素值加起来再除以总的原始个数即为出现正面的概率。
round ()函数的命令格式为:命令格式: round(x)功能:对向量或矩阵x 的每个分量四舍五入取整。
现以联系掷10000次硬币为例,重复做100次试验模拟出现正面的概率。
在matlab 中的程序如下:for i =1:100a(i) = sum(sum(round(rand(100))))/10000;endmx = max(a);mn = min(a);ma = mean(a);a, mx, mn, ma在该程序输出的四项中,a 为实验100次中每次出现正面的频率,mx 和mn 分别为100次实验中出现正面频率的最大值和最小值,ma 为100次试验出现正面的平均频率。
运行结果如下:这里要输入结果下面介绍MATLAB 中取整的几个函数命令:(1) 命令格式: fix(x)功能: 对x 朝零方向取整(2) 命令格式: floor(x)功能:对x 朝负无穷大方向取整(3) 命令格式: ceil(x)功能:对x 朝正无穷大方向取整3.1.2 统计概率及其模型由于古典概率是建立在事件发生的等可能基础上的概率,而现实生活中许多现象的出现并不是等可能的。
第3章概率统计实例分析及MatlAb求解3.1 随机变量分布与数字特征实例及MATLAB求解3.1.1 MATLAB实现用mvnpdf和mvncdf函数可以计算二维正态分布随机变量在指定位置处的概率和累积分布函数值。
利用MATLAB统计工具箱提供函数,可以比较方便地计算随机变量的分布律(概率密度函数)、分布函数及其逆累加分布函数,见附录2-1,2-2,2-3。
MATLAB中矩阵元素求期望和方差的函数分别为mean和var,若要求整个矩阵所有元素的均方差,则要使用std2函数。
随机数生成函数:rand( )和randn( )两个函数伪随机数生成函数:A=gamrnd(a,lambda,n,m) % 生成n*m的 分布的伪随机矩阵B=raylrnd(b,n,m) %生成rayleigh的伪随机数3.1.2 相关实例求解例2-1计算服从二维正态分布的随机变量在指定范围内的累积分布函数值并绘图。
程序:%二维正态分布的随机变量在指定范围内的累积分布函数图形mu=[0 0];sigma=[0.25 0.3;0.3 1];%协方差阵x=-3:0.1:3;y=-3:0.2:3;[x1,y1]=meshgrid(x,y);%将平面区域网格化取值f=mvncdf([x1(:) y1(:)],mu,sigma);%计算累积分布函数值F=reshape(f,numel(y),numel(x));%矩阵重塑surf(x,y,F);caxis([min(F(:))-0.5*range(F(:)),max(F(:))]);%range(x)表示最大值与最小值的差,即极差。
axis([-3 3 -3 3 0 0.5]);xlabel('x'); ylabel('y');zlabel('Probability Density');图1 二维正太分布累积分布函数值图例2-2 设X 的概率密度为⎪⎪⎪⎩⎪⎪⎪⎨⎧<<-≤≤=其他。
MATLAB计算概率在MATLAB中,计算概率可以使用MATLAB的概率和统计工具箱。
概率是一个数学领域,主要研究随机事件发生的可能性。
在计算概率时,常见的方法包括使用概率分布函数、概率密度函数和累积分布函数等。
1.概率分布函数概率分布函数(Probability Distribution Function, PDF)用于描述随机变量的取值概率分布。
MATLAB中提供了多种常见的概率分布函数,如正态分布、均匀分布、泊松分布等。
计算概率分布函数可以使用相应的函数,例如:- 正态分布:normpdf(x, mu, sigma)计算正态分布的概率密度函数值。
- 均匀分布:unifpdf(x, a, b)计算均匀分布的概率密度函数值。
- 泊松分布:poisspdf(x, lambda)计算泊松分布的概率质量函数值。
其中x为随机变量,mu、sigma、a、b和lambda是对应分布的参数。
2.概率密度函数概率密度函数(Probability Density Function, PDF)用于描述随机变量取一些特定值的概率密度。
计算概率密度函数可以使用相应的函数,例如:- 正态分布:normpdf(x, mu, sigma)计算正态分布的概率密度函数值。
- 均匀分布:unifpdf(x, a, b)计算均匀分布的概率密度函数值。
- 泊松分布:poisspdf(x, lambda)计算泊松分布的概率质量函数值。
其中x为随机变量,mu、sigma、a、b和lambda是对应分布的参数。
3.累积分布函数累积分布函数(Cumulative Distribution Function, CDF)用于描述随机变量取值小于或等于一些特定值的概率。
计算累积分布函数可以使用相应的函数,例如:- 正态分布:normcdf(x, mu, sigma)计算正态分布的累积分布函数值。
- 均匀分布:unifcdf(x, a, b)计算均匀分布的累积分布函数值。
概率统计在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 仿真-随机数生成-负指数分布-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之间的拟合度更高),表明生成的随机数符合负指数分布。