当前位置:文档之家› MATLAB计算概率

MATLAB计算概率

MATLAB计算概率
MATLAB计算概率

一、实验名称

已知随机向量(X ,Y )独立同服从标准正态分布,D={(x,y)|a

二、实验目的

(1) 培养编程与上机调试能力;

(2) 熟悉matlab6.5.1软件环境;

(3) 了解概率计算的方法。

三、实验要求

(1) 用input ()语句输入常数a,b,c,d;

(2) 用菜单选择计算方法:.

第一种是用matlab 的二重积分计算语句计算;

第二种是用等距网格法,把区域分成n 2个小区域,在每个小区域中随机地取一个点),(j i ηξ,计算二重积分的近似值ij j i f σηξ?∑),(,其中f 是密度函数;

第三种是用正态分布的分布函数计算;

第四种是蒙特卡罗方法计算。

(3) 把四种不同方法计算出的结果打印在屏幕上。

(4) 用三维图像表示在平面区域D 上的f(x,y)。

(5) 每种计算法都要有计算框图,且每种计算法都要编成一个自定义函数.

五、程序及其运行结果

程序

Function gailv

syms a b c d e n;

a=input('输入值a=');

b=input('\n 输入值b=');

c=input('\n 输入值c=');

d=input('\n 输入值d=');

e=input('\n 请选择:\n1用二重积分计算语句计算概率:\n2等距网格法计算概率;\n3用分布函数计算概率;\n4蒙特卡罗法计算概率.\n5三维图像在D 上表示f(x,y)\n');

while e>0&&e<6

if e==1

p=erchong(a,b,c,d)

end

if e==2

p=wangge(a,b,c,d);

end

if e==3

p=fenbu(a,b,c,d);

end

if e==4

p=mente(a,b,c,d);

end

if e==5

[X,Y]=meshgrid(-3:0.2:3);

Z=1/(2*pi)*exp(-1/2*(X.^2+Y.^2));

meshz(X,Y,Z);

end

e=input('请选择: \n');

end

% ===============================用二重积分计算function p=erchong(a,b,c,d)

syms x y;

f0=1/(2*pi)*exp(-1/2*(x^2+y^2));

f1=int(f0,x,a,b); %对x积分

f1=int(f1,y,c,d); %对y积分

p=vpa(f1,9);

% ================================等距网格法function p=wangge(a,b,c,d)

syms x y ;

n=100;

r1=(b-a)/n; %求步长

r2=(d-c)/n;

za(1)=a;for i=1:n,za(i+1)=za(i)+r1;end %分块

zc(1)=c;for j=1:n,zc(j+1)=zc(j)+r2;end

for i=1:n x(i)=unifrnd(za(i),za(i+1));end %随机取点

for i=1:n y(i)=unifrnd(zc(i),zc(i+1));end

s=0;

for i=1:n

for j=1:n

s=1/(2*pi)*exp(-1/2*(x(i)^2+y(j)^2))+s;%求和end

end

p=s*r1*r2;

p=vpa(p,9)

% ============================用正态分布的分布函数计算function p=fenbu(a,b,c,d)

syms x y;

f0=1/(2*pi)*exp(-1/2*(x.^2+y.^2));%联合密度函数

F=int(f0,x);

F=int(F,y); %分布函数

F=simple(F);

F1=subs(F,{x,y},{b,d}); %F(b,d)

F2=subs(F,{x,y},{a,d}); %F(a,d)

F3=subs(F,{x,y},{b,c}); %F(b,c)

F4=subs(F,{x,y},{a,c}); %F(a,c)

p=F1-F2-F3+F4 %P=F(b,d)-F(a,d)-(b,c)+(a,c)

% ===========================蒙特卡罗法

function p=mente(a,b,c,d)

syms x y;

N=10000000;%取点数

h=0.5;%?高度

x=a+(b-a)*rand(N,1); %随机生成点

y=c+(d-c)*rand(N,1);

z=h*rand(N,1);

F=1/(2*pi)*exp(-1/2*(x.^2+y.^2));%联合密度函数

i=z

k=sum(i); %求和

p=k*(b-a)*(d-c)*h/N

数值计算方法实验指导(Matlab版)

《数值计算方法》实验指导 (Matlab 版) 肇庆学院数学与统计学学院 计算方法课程组

1. 实验名称 实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目 有效数字的损失. 123 )与1000个较小的数(3 10 15)的和,验证 大数吃小数的现象. (3)分别用直接法和秦九韶算法计算多项式 P(x) a 0x n a 1x n 1 在x =1.00037 处的值?验证简化计算步骤能减少运算时间. n 1 对于第(3)题中的多项式P (x ),直接逐项计算需要n (n 1) 2 1 次乘法 和n 次加法,使用秦九韶算法 P(x) (((a °x ajx a 2)x a . 则只需要n 次乘法和n 次加法. 3. 实验目的 验证数值算法需遵循的若干规则. 4. 基础理论 设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算 次数以减少运算时间并降低舍入误差的积累. 两相近的数相减会损失有效数字的个数, 用一 《数值计算方法》实验 1报告 班级: 20xx 级 XXXXx 班 学号: 20xx2409xxxx 姓名: XXX 成绩: ⑴取 z 1016,计算z 1 Z 和 1/(、z 1 Z),验证两个相近的数相减会造成 (2)按不同顺序求一个较大的数( a n 1 X a n

个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5.实验环境 操作系统:Win dows xp ;程序设计语言:Matlab 6.实验过程 (1)直接计算并比较; (2)法1 :大数逐个加1000个小数,法2 :先把1000个小数相加再与大数加; (3)将由高次项到低次项的系数保存到数组A[n]中,其中n为多项式次数. 7.结果与分析 (1)计算的~1V Z = _______________________________ ,1/( ~1 < z) ____________________ . 分析: (2)123逐次加1000个3 10 6的和是_________________________ ,先将1000个3 10 6相 加,再用这个和与123相加得_______________________ . 分析: (3)计算__________ 次的多项式: 直接计算的结果是___________________ ,用时___________________ ; 用秦九韶算法计算的结果是____________________ ,用时 ___________________ 分析:

Matlab 概率论与数理统计

Matlab 概率论与数理统计一、m atlab基本操作 1.画图 hold off; x=0:0.1:2*pi; y=sin(x); plot(x,y,'-r'); x1=0:0.1:pi/2; y1=sin(x1); hold on; fill([x1, pi/2],[y1,1/2],'b'); hold off; x=[0,60];y0=[0,0];y60=[60,60]; x1=[0,30];y1=x1+30; x2=[30,60];y2=x2-30; xv=[0 0 30 60 60 30 0];yv=[0 30 60 60 30 0 0]; fill(xv,yv,'b'); hold on; plot(x,y0,'r',y0,x,'r',x,y60,'r',y60,x,'r'); plot(x1,y1,'r',x2,y2,'r'); yr=unifrnd (0,60,2,100); plot(yr(1,:),yr(2,:),'m.') axis('on'); axis('square'); axis([-20 80 -20 80 ]);

2. 排列组合 C=nchoosek(n,k):k n C C =,例nchoosek(5,2)=10, nchoosek(6,3)=20. prod(n1:n2):从n1到n2的连乘 【例01.03】至少有两个人生日相同的概率 公式计算n n n n N N n N N N N n N N N C n p )1()1(1)! (! 1!1+--?-=--=- = 365364 (3651)365364 3651 11365365365365 rs rs rs ?-+-+=- =-? rs=[20,25,30,35,40,45,50]; %每班的人数 p1=ones(1,length(rs)); p2=ones(1,length(rs)); % 用连乘公式计算 for i=1:length(rs) p1(i)=prod(365-rs(i)+1:365)/365^rs(i); end % 用公式计算(改进) for i=1:length(rs) for k=365-rs(i)+1:365 p2(i)=p2(i)*(k/365); end ; end % 用公式计算(取对数)

Matlab概率统计工具箱(3)

Matlab概率统计工具箱(3) 4.8 假设检验 4.8.1 已知,单个正态总体的均值μ的假设检验(U检验法) 函数ztest 格式h = ztest(x,m,sigma) % x为正态总体的样本,m为均值μ0,sigma为标准差,显著性水平为0.05(默认值) h = ztest(x,m,sigma,alpha) %显著性水平为alpha [h,sig,ci,zval] = ztest(x,m,sigma,alpha,tail) %sig为观察值的概率,当sig为小概率时则对原假设提出质疑,ci为真正均值μ的1-alpha置信区间,zval为统计量的值. 说明若h=0,表示在显著性水平alpha下,不能拒绝原假设; 若h=1,表示在显著性水平alpha下,可以拒绝原假设. 原假设:, 若tail=0,表示备择假设:(默认,双边检验); tail=1,表示备择假设:(单边检验); tail=-1,表示备择假设:(单边检验). 例4-74 某车间用一台包装机包装葡萄糖,包得的袋装糖重是一个随机变量,它服从正态分布.当机器正常时,其均值为0.5公斤,标准差为0.015.某日开工后检验包装机是否正常,随机地抽取所包装的糖9袋,称得净重为(公斤)

0.497, 0.506, 0.518, 0.524, 0.498, 0.511, 0.52, 0.515, 0.512 问机器是否正常 解:总体μ和σ已知,该问题是当为已知时,在水平下,根据样本值判断μ=0.5还是.为此提出假设: 原假设: 备择假设: >> X=[0.497,0.506,0.518,0.524,0.498,0.511,0.52,0.515,0.512 ]; >> [h,sig,ci,zval]=ztest(X,0.5,0.015,0.05,0) 结果显示为 h = 1 sig = 0.0248 %样本观察值的概率 ci = 0.5014 0.5210 %置信区间,均值0.5在此区间之外 zval = 2.2444 %统计量的值 结果表明:h=1,说明在水平下,可拒绝原假设,即认为包装机工作不正常.

数值分析Matlab作业

数值分析编程作业

2012年12月 第二章 14.考虑梯形电阻电路的设计,电路如下: 电路中的各个电流{i1,i2,…,i8}须满足下列线性方程组: 12 123 234 345 456 567 678 78 22/ 2520 2520 2520 2520 2520 2520 250 i i V R i i i i i i i i i i i i i i i i i i i i -= -+-= -+-= -+-= -+-= -+-= -+-= -+= 这是一个三对角方程组。设V=220V,R=27Ω,运用追赶法,求各段电路的电流量。Matlab程序如下: function chase () %追赶法求梯形电路中各段的电流量 a=input('请输入下主对角线向量a='); b=input('请输入主对角线向量b='); c=input('请输入上主对角线向量c='); d=input('请输入右端向量d='); n=input('请输入系数矩阵维数n='); u(1)=b(1); for i=2:n l(i)=a(i)/u(i-1); u(i)=b(i)-c(i-1)*l(i); end y(1)=d(1); for i=2:n y(i)=d(i)-l(i)*y(i-1); end x(n)=y(n)/u(n); i=n-1; while i>0 x(i)=(y(i)-c(i)*x(i+1))/u(i); i=i-1; end x 输入如下:

请输入下主对角线向量a=[0,-2,-2,-2,-2,-2,-2,-2]; 请输入主对角线向量b=[2,5,5,5,5,5,5,5]; 请输入上主对角线向量c=[-2,-2,-2,-2,-2,-2,-2,0]; 请输入方程组右端向量d=[220/27,0,0,0,0,0,0,0]; 请输入系数矩阵阶数n=8 运行结果如下: x = 8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.0477 第三章 14.试分别用(1)Jacobi 迭代法;(2)Gauss-Seidel 迭代法解线性方程组 1234510123412191232721735143231211743511512x x x x x ?????? ??????---????????????=--?????? --?????? ??????---?????? 迭代初始向量 (0)(0,0,0,0,0)T x =。 (1)雅可比迭代法程序如下: function jacobi() %Jacobi 迭代法 a=input('请输入系数矩阵a='); b=input('请输入右端向量b='); x0=input('请输入初始向量x0='); n=input('请输入系数矩阵阶数n='); er=input('请输入允许误差er='); N=input('请输入最大迭代次数N='); for i=1:n for j=1:n if i==j d(i,j)=a(i,j); else d(i,j)=0; end end end m=eye(5)-d\a; %迭代矩阵 g=d\b; x=m*x0+g; k=1; while k<=N %进行迭代 for i=1:5 if max(abs(x(i)-x0(i))) >er x=m*x+g; k=k+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基本操作 1.画图 【例01.01】简单画图 【例01.02】填充,二维均匀随机数 hold off; x=[0,60];y0=[0,0];y60=[60,60]; x1=[0,30];y1=x1+30;

2. 排列组合 C=nchoosek(n,k):k n C C =,例nchoosek(5,2)=10, nchoosek(6,3)=20. prod(n1:n2):从n1到n2的连乘 【例01.03】至少有两个人生日相同的概率 公式计算n n n n N N n N N N N n N N N C n p )1()1(1)! (! 1!1+--?-=--=- = 365364(3651)3653643651 11365365365365 rs rs rs ?-+-+=- =-?

二、随机数的生成 3.均匀分布随机数 rand(m,n); 产生m行n列的(0,1)均匀分布的随机数rand(n); 产生n行n列的(0,1)均匀分布的随机数 【练习】生成(a,b)上的均匀分布 4.正态分布随机数 randn(m,n); 产生m行n列的标准正态分布的随机数【练习】生成N(nu,sigma.^2)上的正态分布 5.其它分布随机数

三、一维随机变量的概率分布 1. 离散型随机变量的分布率 (1) 0-1分布 (2) 均匀分布 (3) 二项分布:binopdf(x,n,p),若~(,)X B n p ,则{}(1)k k n k n P X k C p p -==-, ‘当n 较大时二项分布近似为正态分布 x=0:100;n=100;p=0.3; y= binopdf(x,n,p); plot(x,y,'b-',x,y,'r*')

数值分析的matlab实现

第2章牛顿插值法实现 参考文献:[1]岑宝俊. 牛顿插值法在凸轮曲线修正设计中的应用[J]. 机械工程师,2009,10:54-55. 求牛顿插值多项式和差商的MA TLAB 主程序: function[A,C,L,wcgs,Cw]=newpoly(X,Y) n=length(X);A=zeros(n,n);A(:,1) =Y'; s=0.0;p=1.0;q=1.0;c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1)); end b=poly(X(j-1));q1=conv(q,b);c1=c1*j;q=q1; end C=A(n,n);b=poly(X(n));q1=conv(q1,b); for k=(n-1):-1:1 C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k); end L(k,:)=poly2sym(C);Q=poly2sym(q1); syms M wcgs=M*Q/c1;Cw=q1/c1; (1)保存名为newpoly.m 的M 文件 (2)输入MA TLAB 程序 >> X=[242,243,249,250]; >> Y=[13.681,13.526,13.098,13.095]; >> [A,C,L,wcgs,Cw]=newpoly(X,Y) 输出3阶牛顿插值多项式L 及其系数向量C 差商的矩阵A ,插值余项wcgs 及其 ) ()()1(ξ+n n f x R 的系数向量Cw 。 A = 13.6810 0 0 0 13.5260 -0.1550 0 0 13.0980 -0.0713 0.0120 0 13.0950 -0.0030 0.0098 -0.0003 C = 1.0e+003 *

matlab在统计数据的描述性分析的应用

统计数据的描述性分析 一、实验目的 熟悉在matlab中实现数据的统计描述方法,掌握基本统计命令:样本均值、样本中位数、样本标准差、样本方差、概率密度函数pdf、概率分布函数df、随机数生成rnd。 二、实验内容 1 、频数表和直方图 数据输入,将你班的任意科目考试成绩输入 >> data=[91 78 90 88 76 81 77 74]; >> [N,X]=hist(data,5) N = 3 1 1 0 3 X = 75.7000 79.1000 82.5000 85.9000 89.3000 >> hist(data,5)

2、基本统计量 1) 样本均值 语法: m=mean(x) 若x 为向量,返回结果m是x 中元素的均值; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的均值。 2) 样本中位数 语法: m=median(x) 若x 为向量,返回结果m是x 中元素的中位数; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的中位数3) 样本标准差 语法:y=std(x) 若x 为向量,返回结果y 是x 中元素的标准差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的标准差

std(x)运用n-1 进行标准化处理,n是样本的个数。 4) 样本方差 语法:y=var(x); y=var(x,1) 若x 为向量,返回结果y 是x 中元素的方差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的方差 var(x)运用n-1 进行标准化处理(满足无偏估计的要求),n 是样本的个数。var(x,1)运用n 进行标准化处理,生成关于样本均值的二阶矩。 5) 样本的极差(最大之和最小值之差) 语法:z= range(x) 返回结果z是数组x 的极差。 6) 样本的偏度 语法:s=skewness(x) 说明:偏度反映分布的对称性,s>0 称为右偏态,此时数据位于均值右边的比左边的多;s<0,情况相反;s 接近0 则可认为分布是对称的。 7) 样本的峰度 语法:k= kurtosis(x) 说明:正态分布峰度是3,若k 比3 大得多,表示分布有沉重的尾巴,即样本中含有较多远离均值的数据,峰度可以作衡量偏离正态分布的尺度之一。 >> mean(data) ,

第2讲 matlab的数值分析

第二讲MATLAB的数值分析 2-1矩阵运算与数组运算 矩阵运算和数组运算是MATLAB数值运算的两大类型,矩阵运算是按矩阵的运算规则进行的,而数组运算则是按数组元素逐一进行的。因此,在进行某些运算(如乘、除)时,矩阵运算和数组运算有着较大的差别。在MATLAB中,可以对矩阵进行数组运算,这时是把矩阵视为数组,运算按数组的运算规则。也可以对数组进行矩阵运算,这时是把数组视为矩阵,运算按矩阵的运算规则进行。 1、矩阵加减与数组加减 矩阵加减与数组加减运算效果一致,运算符也相同,可分为两种情况: (1)若参与运算的两矩阵(数组)的维数相同,则加减运算的结果是将两矩阵的对应元素进行加减,如 A=[1 1 1;2 2 2;3 3 3]; B=A; A+B ans= 2 2 2 4 4 4 6 6 6 (2)若参与运算的两矩阵之一为标量(1*1的矩阵),则加减运算的结果是将矩阵(数组)的每一元素与该标量逐一相加减,如 A=[1 1 1;2 2 2;3 3 3]; A+2 ans= 3 3 3 4 4 4 5 5 5 2、矩阵乘与数组乘 (1)矩阵乘 矩阵乘与数组乘有着较大差别,运算结果也完全不同。矩阵乘的运算符为“*”,运算是按矩阵的乘法规则进行,即参与乘运算的两矩阵的内维必须相同。设A、B为参与乘运算的 =A m×k B k×n。因此,参与运两矩阵,C为A和B的矩阵乘的结果,则它们必须满足关系C m ×n 算的两矩阵的顺序不能任意调换,因为A*B和B*A计算结果很可能是完全不一样的。如:A=[1 1 1;2 2 2;3 3 3]; B=A;

A*B ans= 6 6 6 12 12 12 18 18 18 F=ones(1,3); G=ones(3,1); F*G ans 3 G*F ans= 1 1 1 1 1 1 1 1 1 (2)数组乘 数组乘的运算符为“.*”,运算符中的点号不能遗漏,也不能随意加空格符。参加数组乘运算的两数组的大小必须相等(即同维数组)。数组乘的结果是将两同维数组(矩阵)的对应元素逐一相乘,因此,A.*B和B.*A的计算结果是完全相同的,如: A=[1 1 1 1 1;2 2 2 2 2;3 3 3 3 3]; B=A; A.*B ans= 1 1 1 1 1 4 4 4 4 4 9 9 9 9 9 B.*A ans= 1 1 1 1 1 4 4 4 4 4 9 9 9 9 9 由于矩阵运算和数组运算的差异,能进行数组乘运算的两矩阵,不一定能进行矩阵乘运算。如 A=ones(1,3); B=A; A.*B ans= 1 1 1 A*A ???Error using= =>

数值分析的MATLAB程序

列主元法 function lianzhuyuan(A,b) n=input('请输入n:') %选择阶数A=zeros(n,n); %系数矩阵A b=zeros(n,1); %矩阵b X=zeros(n,1); %解X for i=1:n for j=1:n A(i,j)=(1/(i+j-1)); %生成hilbert矩阵A end b(i,1)=sum(A(i,:)); %生成矩阵b end for i=1:n-1 j=i; top=max(abs(A(i:n,j))); %列主元 k=j; while abs(A(k,j))~=top %列主元所在行 k=k+1; end for z=1:n %交换主元所在行a1=A(i,z); A(i,z)=A(k,z); A(k,z)=a1; end a2=b(i,1); b(i,1)=b(k,1); b(k,1)=a2; for s=i+1:n %消去算法开始m=A(s,j)/A(i,j); %化简为上三角矩阵 A(s,j)=0; for p=i+1:n A(s,p)=A(s,p)-m*A(i,p); end b(s,1)=b(s,1)-m*b(i,1); end end X(n,1)=b(n,1)/A(n,n); %回代开始 for i=n-1:-1:1 s=0; %初始化s for j=i+1:n s=s+A(i,j)*X(j,1);

end X(i,1)=(b(i,1)-s)/A(i,i); end X 欧拉法 clc clear % 欧拉法 p=10; %贝塔的取值 T=10; %t取值的上限 y1=1; %y1的初值 r1=1; %y2的初值 %输入步长h的值 h=input('欧拉法please input number(h=1 0.5 0.25 0.125 0.0625):h=') ; if h>1 or h<0 break end S1=0:T/h; S2=0:T/h; S3=0:T/h; S4=0:T/h; i=1; % 迭代过程 for t=0:h:T Y=(exp(-t)); R=(1/(p-1))*exp(-t)+((p-2)/(p-1))*exp(-p*t); y=y1+h*(-y1); y1=y; r=r1+h*(y1-p*r1); r1=r; S1(i)=Y; S2(i)=R; S3(i)=y; S4(i)=r; i=i+1; end t=[0:h:T]; % 红线为解析解,'x'为数值解 plot(t,S1,'r',t,S3,'x')

MATLAB计算概率

一、实验名称 已知随机向量(X ,Y )独立同服从标准正态分布,D={(x,y)|a0&&e<6 if e==1

p=erchong(a,b,c,d) end if e==2 p=wangge(a,b,c,d); end if e==3 p=fenbu(a,b,c,d); end if e==4 p=mente(a,b,c,d); end if e==5 [X,Y]=meshgrid(-3:0.2:3); Z=1/(2*pi)*exp(-1/2*(X.^2+Y.^2)); meshz(X,Y,Z); end e=input('请选择: \n'); end % ===============================用二重积分计算function p=erchong(a,b,c,d) syms x y; f0=1/(2*pi)*exp(-1/2*(x^2+y^2)); f1=int(f0,x,a,b); %对x积分 f1=int(f1,y,c,d); %对y积分 p=vpa(f1,9); % ================================等距网格法function p=wangge(a,b,c,d) syms x y ; n=100; r1=(b-a)/n; %求步长 r2=(d-c)/n; za(1)=a;for i=1:n,za(i+1)=za(i)+r1;end %分块 zc(1)=c;for j=1:n,zc(j+1)=zc(j)+r2;end for i=1:n x(i)=unifrnd(za(i),za(i+1));end %随机取点 for i=1:n y(i)=unifrnd(zc(i),zc(i+1));end s=0; for i=1:n for j=1:n s=1/(2*pi)*exp(-1/2*(x(i)^2+y(j)^2))+s;%求和end end p=s*r1*r2;

同济大学数值分析matlab编程题汇编

MATLAB 编程题库 1.下面的数据表近似地满足函数2 1cx b ax y ++=,请适当变换成为线性最小二乘问题,编程求最好的系数c b a ,,,并在同一个图上画出所有数据和函数图像. 625 .0718.0801.0823.0802.0687.0606.0356.0995 .0628.0544.0008.0213.0362.0586.0931.0i i y x ---- 解: x=[-0.931 -0.586 -0.362 -0.213 0.008 0.544 0.628 0.995]'; y=[0.356 0.606 0.687 0.802 0.823 0.801 0.718 0.625]'; A=[x ones(8,1) -x.^2.*y]; z=A\y; a=z(1); b=z(2); c=z(3); xh=-1:0.1:1; yh=(a.*xh+b)./(1+c.*xh.^2); plot(x,y,'r+',xh,yh,'b*')

2.若在Matlab工作目录下已经有如下两个函数文件,写一个割线法程序,求出这两个函数 10 的近似根,并写出调用方式: 精度为10 解: >> edit gexianfa.m function [x iter]=gexianfa(f,x0,x1,tol) iter=0; while(norm(x1-x0)>tol) iter=iter+1; x=x1-feval(f,x1).*(x1-x0)./(feval(f,x1)-feval(f,x0)); x0=x1;x1=x; end >> edit f.m function v=f(x) v=x.*log(x)-1; >> edit g.m function z=g(y) z=y.^5+y-1; >> [x1 iter1]=gexianfa('f',1,3,1e-10) x1 = 1.7632 iter1 = 6 >> [x2 iter2]=gexianfa('g',0,1,1e-10) x2 = 0.7549 iter2 = 8

(完整版)Matlab概率论与数理统计

Matlab 概率论与数理统计 、matlab 基本操作 1. 画图 【例01.01】简单画图 hold off; x=0:0.1:2*pi; y=sin (x); plot(x,y, '-r'); x1=0:0.1:pi/2; y1=s in( x1); hold on; fill([x1, pi/2],[y1,1/2], 'b'); 【例01.02】填充,二维均匀随机数 hold off ; x=[0,60];y0=[0,0];y60=[60,60]; x1=[0,30];y1=x1+30; x2=[30,60];y2=x2-30; plot(x,y0, 'r' ,y0,x, plot(x1,y1, 'r' ,x2,y2, yr=u nifrnd (0,60,2,100); plot(yr(1,:),yr(2,:), axis( 'on'); axis( 'square' ); axis([-20 80 -20 80 ]); xv=[0 0 30 60 60 30 0];yv=[0 30 60 60 30 0 0]; fill(xv,yv, 'b'); hold on ; 'r' ,x,y60, 'r' ,y60,x, 'r') 'r'); 'm.')

2. 排列组合 k C=nchoosek(n,k) : C C n ,例 nchoosek(5,2)=10, nchoosek(6,3)=20. prod(n1:n2):从 n1 至U n2 的连乘 【例01.03】至少有两个人生日相同的概率 365 364|||(365 rs 1) rs 365 365 364 365 rs 1 365 365 365 rs=[20,25,30,35,40,45,50]; %每班的人数 p1= on es(1,le ngth(rs)); p2=on es(1,le ngth(rs)); %用连乘公式计算 for i=1:le ngth(rs) p1(i)=prod(365-rs(i)+1:365)/365A rs(i); end %用公式计算(改进) for i=1:le ngth(rs) for k=365-rs(i)+1:365 p2(i)=p2(i)*(k/365); end ; end %用公式计算(取对数) for i=1:le ngth(rs) p1(i)=exp(sum(log(365-rs(i)+1:365))-rs(i)*log(365)); end 公式计算P 1 n!C N N n N! 1 (N n)! 1 N n N (N 1) (N n 1)

数值计算方法与Matlab样卷答案

腹有诗书气自华 《数值计算方法与Matlab 》 样卷答案 一.填空题:(每空3分,共42分) 1. 8,6105.0-? 。 2.)(3)1(2)1(1)(3)1(2)1(1)(3)1(3)(3)(2)1(1)(3)(2)1(1)(2)1(2)(3)(2)(1)(3)(2)(1)(1)1(1)1(22)22()1()1(222)1()222(k k k k k k k k k k k k k k k k k k k k k k k k x x x x x x x x x x x x x x x x x x x x x x x x ωωωωωωωωωω ωωωω-+--=---?+=+--+-=---?+=++--=+--?+=+++++++++, )2,1(∈ω。 3.],[1b a C S m -∈。4. 1e 2e ---x ,???==-=?--? ,3,2,1,0;0,e 1d )(e 110k k x x g k x ,正交投影。 5. 2阶,6阶。 6.10.6658,10.9521,10.9501。 7. 4002.2)00.1(=ε,4030.2)01.1(=ε。 二.解下列各题:(每题9分,共36分) 1.解:令)1(2 3+=t x , (2分) 则??-+++=+1123 02 dt )1(25.21)1(49d 1t t x x x ???++++???++-+-≈22)6.01(25.21)6.01(9525.219 8)6.01(25.21)6.01(9549 (8分) 210631.10≈ (9分) 2.解:记系数矩阵为A, 对增广矩阵[]b A |作初等行运算, ??????????--401533933112??????????--==5.55.115 .35.405.75.401125.1,5.11,31,2l l ??????????---=45.114005.75.4011212,3l , 所以13-=x ,2)5.75.1(5.4112=-=x x ,1)1(2 1321=-+-=x x x ,即方程组的解为 [1,2,-1]T . (4分) 故系数矩阵A 的LU 分解为???? ??????--???????????---=4005.75.40112115.1015.1001A 。 (6分)

数值分析 matlab 实验4

(1) 解题过程如下: (1)MATLAB中创建复化梯形公式和复化辛普森公式的 M 文件:1)复化梯形公式文件: function s=T_fuhua(f,a,b,n) h=(b-a)/n; s=0; for k=1:(n-1) x=a+h*k; s=s+feval(f,x); end s=h*(feval(f,a)+feval(f,b))/2+h*s; 2)复化辛普森公式文件: function s=S_fuhua(f,a,b,n) h=0; h=(b-a)./(2*n); s1=0; https://www.doczj.com/doc/1e9166509.html, -5- s2=0; for k=1:n-1 x=a+h*2*k; s1=s1+feval(f,x); end for k=1:n x=a+h*(2*k-1); s2=s2+feval(f,x); end

s=h*(feval(f,a)+feval(f,b)+s1*2+s2*4)/3; 在MATLAB中输入: f=inline('x/(4+x^2)');a=0;b=1; %inline 构造内联函数对象 for n=2:10 s(n-1)=T_fuhua(f,a,b,n);s(n-1)=vpa(s(n-1),10); %调用复化梯形公式,生成任意精度的数值 end exact=int('x/(4+x^2)',0,1);exact=vpa(exact,10) %求出积分的精确值 输出结果:exact = .1115717755 s = Columns 1 through 6 0.1088 0.1104 0.1109 0.1111 0.1113 0.1114 Columns 7 through 9 0.1114 0.1114 0.1115 在MATLAB中输入以下函数用以画出计算误差与 n 之间的曲线: r=abs(exact-s); n=2:10; plot(double(n),double(r(n-1))) 得到结果如图所示: (2)在 MATLAB中输入以下程序代码: f=inline('x/(4+x^2)');a=0;b=1;n=9; %inline 构造内联函数对象 t=T_fuhua(f,a,b,n);t=vpa(t,10) s=S_fuhua(f,a,b,n);s=vpa(s,10)

数值分析实验— MATLAB实现

数值分析实验 ——MATLAB实现 姓名sumnat 学号2013326600000 班级13级应用数学2班 指导老师 2016年1月

一、插值:拉格朗日插值 (1) 1、代码: (1) 2、示例: (1) 二、函数逼近:最佳平方逼近 (2) 1、代码: (2) 2、示例: (2) 三、数值积分:非反常积分的Romberg算法 (3) 1、代码: (3) 2、示例: (4) 四、数值微分:5点法 (5) 1、代码: (5) 2、示例: (6) 五、常微分方程:四阶龙格库塔及Adams加速法 (6) 1、代码:四阶龙格库塔 (6) 2、示例: (7) 3、代码:Adams加速法 (7) 4、示例: (8) 六、方程求根:Aitken 迭代 (8) 1、代码: (8) 2、示例: (9) 七、线性方程组直接法:三角分解 (9) 1、代码: (9) 2、示例: (10) 八、线性方程组迭代法:Jacobi法及G-S法 (11) 1、代码:Jacobi法 (11) 2、示例: (12) 3、代码:G-S法 (12) 4、示例: (12) 九、矩阵的特征值及特征向量:幂法 (13) 1、代码: (13) 2、示例: (13)

一、插值:拉格朗日插值 1、代码: function z=LGIP(x,y)%拉格朗日插值 n=size(x); n=n(2);%计算点的个数 syms a; u=0;%拉格朗日多项式 f=1;%插值基函数 for i=1:n for j=1:n if j==i f=f; else f=f*(a-x(j))/(x(i)-x(j)); end end u=u+y(i)*f;f=1; end z=expand(u);%展开 2、示例: >> x=1:6; y1=x.^5+3*x.^2-6; y2=sin(x)+sqrt(x); >> f1=LGIP(x,y1) f1 = -6+3*a^2+a^5 %可知多项式吻合得很好 >> f2=vpa(LGIP(x,y2),3) f2 = .962e-1*a^4+1.38*a+.300*a^2+.504-.436*a^3-.616e-2*a^5

概率统计计算及MATLAB实现.doc

《概率统计计算及其MATLAB实现》共分为六章和一个附录,前两章主要介绍概率论和随机变量的基本知识,第三章至第五章是数理统计内容,第六章是随机过程计算及其仿真,最后,附录部分对MATLAB的基本知识进行了简介。主要内容涉及概率及其计算、变量分布及其相关计算、数字特征和中心极限定理、描述统计、参数估计和假设检验、方差分析和回归分析、泊松过程、马氏链、布朗运动、风险模型等的计算和模拟。另外还涉及MATLAB矩阵的运算和操作、微积分运算、代数方程(组)求解、画图和程序流程控制等内容。 目录 1 概率计算及变量分布 1.1 概率定义及其计算 1.2 随机变量及其分布 1.3 随机变量函数及其分布 1.4有关古典概率实际问题的MATLAB模拟 习题1 2常见分布及数字特征 2.1 常见的离散型分布 2.2 常见的连续型分布 2.3 随机变量的数字特征 2.4 有关常见分布的MATLAB模拟 习题2 3样本描述及抽样分布 3.1 数据的整理和显示 3.2 数据预处理及其他描述分析 3.3抽样分布 习题3 4参数估计与假设检验 4.1 参数估计 4.2正态总体参数的假设检验 4.3 其他常用的假设检验 4.4几个常用的非参数假设检验 习题4 5方差分析与回归分析 5.1 单因素方差分析 5.2 双因素方差分析 5.3 线性回归分析 5.4 逐步回归与其他几个回归 习题5

6随机过程计算与仿真 6.1 随机过程的基本概念 6.2 泊松过程的计算与仿真6.3 马氏链的计算与仿真 6.4布朗运动计算与仿真 6.5 风险模型的计算与仿真习题6 附录MATLAB简介 1 矩阵与相关运算 2微积分与代数方程基本求解3 画图与编程

数值计算方法实验指导(Matlab版)

数值计算方法实验指导(Matlab 版)

《数值计算方法》 实验指导 (Matlab版) 肇庆学院数学与统计学学院 计算方法课程组

《数值计算方法》实验1报告 班级: 20xx 级XXXXx 班 学 号: 20xx2409xxxx 姓名: XXX 成绩: 1. 实验名称 实验1 算法设计原则验证(之相近数相减、大数吃小数和简化计算步骤) 2. 实验题目 (1) 取16 10=z ,计算 z z -+1和) 1/( 1z z ++,验证 两个相近的数相减会造成有效数字的损失. (2) 按不同顺序求一个较大的数(123)与1000个较小的数(15 310-?)的和,验证大数吃小 数的现象. (3) 分别用直接法和秦九韶算法计算多项式 n n n n a x a x a x a x P ++++=--1 1 1 )(Λ 在x =1.00037处的值.验证简化计算步骤能减少运算时间. 对于第(3)题中的多项式P (x ),直接逐项计算 需要21 12)1(+=+++-+n n n Λ次乘法和n 次加法,使用秦

九韶算法 n n a x a x a x a x a x P ++++=-)))((()(1210Λ 则只需要n 次乘法和n 次加法. 3. 实验目的 验证数值算法需遵循的若干规则. 4. 基础理论 设计数值算法时,应避免两个相近的数相减、防止大数吃小数、简化计算步骤减少运算次数以减少运算时间并降低舍入误差的积累.两相近的数相减会损失有效数字的个数,用一个大数依次加小数,小数会被大数吃掉,乘法运算次数太多会增加运算时间. 5. 实验环境 操作系统:Windows xp ; 程序设计语言:Matlab 6. 实验过程 (1) 直接计算并比较; (2) 法1:大数逐个加1000个小数,法2:先把1000个小数相加再与大数加; (3) 将由高次项到低次项的系数保存到数组A[n]中,其中n 为多项式次数.

相关主题
文本预览
相关文档 最新文档