概率论问题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程序首先定义了正方形和圆的参数,然后通过生成大量随机点,并判断这些点是否落在圆内来计算套圈概率。