Matlab笔记——数值计算—概率篇017

Matlab笔记——数值计算—概率篇017
Matlab笔记——数值计算—概率篇017

17. 数值计算—概率篇

一、计算组合数、排列数

!n——factorial(n)或prod(1:n)

k

C——nchoosek(n,k)

n

k

A——factorial(n)/factorial(n-k)

n

二、生成随机数

1. rand(m,n)

——生成m×n的服从[0,1]上均匀分布的随机数;

用a + (b-a).*rand(m,n)生成m×n的服从[a,b]上均匀分布的随机数。

2. 二项分布与正态分布随机数

binornd(N,P,m,n)——生成m×n的服从二项分布B(N,P)的随机数;

normrnd(MU,SIGMA,m,n)

——生成m×n的服从正态分布N(MU,SIGMA2)的随机数;

3. 通用格式:

分布缩写+rnd(分布参数, m,n)

或random(‘分布名或缩写’, 分布参数, m,n)

可以用来生成m×n该分布的随机数。各种分布名见下图:

4. 使用randsample和randsrc函数生成指定离散分布随机数

X=randsample(N, k, replace, w)

N相当于[1:N], 也可以是具有确定值的向量;k表示生成k个随机数;replace=’true’表示可重复,或’false’表示不可重复(默认);w是权重向量。

X= randsrc(m,n,[x; p])

生成m×n的随机矩阵,服从取值为向量x, 对应概率为向量p的离散分布。

例1 设离散型随机变量X服从如下分布:

生成服从3×5的该分布的随机数。

代码:

xvalue = [-2 -1 0 1 2];

xp = [0.05 0.2 0.5 0.2 0.05];

% 调用randsample函数生成100个服从指定离散分布的随机数

x = randsample(xvalue, 15, true, xp);

reshape(x,[3 5])

% 调用randsrc函数生成10*10的服从指定离散分布的随机数矩阵

y = randsrc(3,5,[xvalue;xp])

运行结果:ans = 0 0 1 0 0

0 0 0 -1 -1

1 1 0 0 1

y = -1 -1 1 1 -1

-1 0 0 2 0

-1 0 -1 0 0

5. 已知概率密度函数,生成服从该分布的随机数 例2 设随机变量X 的概率密度函数为(抛物线分布):

6(1), 01

() 0, x x x f x -<

调用crnd 函数(来自《MATLAB 统计分析与应用 40个案例分析》作者:谢中华),生成3×5个服从该分布的随机数。

代码:

pdffun = '6*x*(1-x)'; % 密度函数表达式 x = crnd(pdffun,[0 1],3,5)

运行结果:x = 0.3160 0.6866 0.2724 0.2816 0.1268 0.2681 0.8439 0.1948 0.7999 0.5383 0.7377 0.2040 0.4932 0.1948 0.6909

6. 生成多元分布的随机数

mrnd(N, P, m)——多项分布,P 为概率向量;

mvnrnd(mu, sigma, m)——多元正态分布,mu, sigma 为n 元向量; mvtrnd(C, df, m)——多元t 分布; wishrnd(sigma,df,m)——Wishart 分布; iwishrnd(sigma,df, m)——逆Wishart 分布;

例3利用mvnrnd 函数生成3组的二元正态分布随机数,其中分布的参数为

1013==20316μ????

∑ ? ?????

, 代码:

mu = [10 20];

sigma = [1 3; 3 16];

xy = mvnrnd(mu, sigma, 3)

运行结果:xy = 11.8336 25.7385

9.0347 17.8026

9.6030 19.5821

三、随机变量的概率密度函数及其图像

概率密度函数,描述随机变量X在点x附近取值的可能性。

1. 通用格式:

pdf(‘分布名或缩写’, x, 分布参数)

——返回该分布在X=x处的概率密度值;

例如,Pk=pdf('bino',3, 10, 0.4)

2. 专用函数

分布名缩写+pdf(x, 分布参数)

例如,binopdf (k, n, p)

例4绘制卡方分布密度函数在自由度分别为1、5、15的图形。

代码:

x=0:0.1:30;

y1=chi2pdf(x,1); plot(x,y1,':')

hold on

y2=chi2pdf(x,3);plot(x,y2,'+')

y3=chi2pdf(x,10);plot(x,y3,'o')

axis([0,30,0,0.2])

运行结果:

四、随机变量的分布函数

分布函数定义为:F(x)=P{X≤x},表示随机变量X的取值落在(-∞,x)范围内的概率。引入分布函数的目的,就是可以计算随机变量X的取值落在任意区间内的概率,例如,

P{a

1. 通用格式:

cdf(‘分布名或缩写’, x, 分布参数)

——返回该分布的分布函数;

例如,Pk=cdf('bino',3, 10, 0.4)

2. 专用函数

分布名缩写+cdf(x, 分布参数)

例如,binocdf (k, n, p)

五、逆分布函数

已知F(x)=P{X≤x}的值,求x点。

1. 通用格式:

icdf(‘分布名或缩写’, p, 分布参数)

——返回该分布的分布函数F(x)=P{X≤x}=p的x值;

例如,Pk=icdf('bino',3, 10, 0.4)

2. 专用函数

分布名缩写+inv(p, 分布参数)

例如,binoinv (p, N, P)

3. 分位数

N(0,1)的上α分位数:P{X>uα}=α,故

uα=norminv(1-α, 0,1)

其它分布的上分位数也是类似的。

N(0,1)的双侧α分位数:P{|X|>uα/2}=α, 故

uα/2=norminv(1-α/2,0,1)

注意:-uα/2=u1-α/2(-uα/2右侧的面积为1-α/2),其它对称分布也成立,例如,t1-α(n)=-tα(n).

六、随机变量的数字特征

注:若要X中除NaN(非数)之外的数进行操作,加前缀nan, 例如nanmean(X).

1. 几种平均

(1) 算术平均值(样本均值)

适用于性质相同、单峰,且近似服从正态分布的定量数据; 代码:mean(X) (若X 为矩阵,返回每列的均值) (2) 中位数 代码:median(X) (3) 几何平均值

11n

n

i i G x =??=∏ ???

适用于对比率数据的平均,并主要用于计算数据平均增长(变化)率;服从正偏态分布(较长右尾),特别是对数正态分布数据(取对数变换后服从正态分布)。

代码:geomean(X) (4) 调和平均值

11

n

i i

n H x

==

即先取倒数,再取算术平均值,再取倒数回来。例如前半段时速60公里,后半段时速30公里(两段距离相等),则其平均速度为两者的调和平均数时速40公里。在实际中,往往由于缺乏总体单位数的资料而不能直接计算算术平均数,这时需用调和平均法来求得平均数。

代码:harmmean(X) (5) 众数

出现次数最多的数,代码:mode(X)

2. 期望和方差 (1)样本数据

mean(X)——样本均值1

1n

i i x x n ==∑

var(X)或var(X,0)——样本方差2

21

1=()1n

i i S x x n =--∑ var(X,1)——方差21

1()n

i i D x x n ==-∑

std(X)或std(X,0)——样本标准差S std(X,1)

(2) 常见分布的期望和方差 通用格式:

[E,D]=分布名缩写+stat(分布参数)

返回E 为期望,D 为方差;例如,[E,D]=normstat(MU,SIGMA)

(3) 已知离散型随机变量的分布律,求期望和方差 例5设离散型随机变量X 服从如下分布:

求E(X), E(X 2-1), D(X).

代码:

X=[-2 -1 0 1 2];

p=[0.3 0.1 0.2 0.1 0.3]; EX=sum(X.*p) % 或 EX=X*p’ Y=X.^2-1;

EY=sum(Y.*p)

XX=X.^2;

EXX=sum(XX.*p);

DX=EXX-EX^2

运行结果:EX = 0EY = 1.6000DX = 2.6000

3. 极差、偏度、峰度

极差,数据的最大值与最小值之差。代码:range(X)

偏度,是数据关于均值不对称的指标。若偏度为负,说明均值左边的数据比右边的数据更散;若偏度为正,说明均值右边的数据比左边的数据更散,正态分布的偏度为0. 代码:skewness(X) 峰度,是用来反映数据的分布曲线顶端尖峭或扁平程度的指标。代码:kurtosis(X)

4. 矩

k阶中心矩——m=moment(X, k)

k阶原点矩——可以使用下面自编的OriginMoment.m

function y=OriginMoment(X,k);

% X为样本矩阵

[n,m]=size(X);

y=zeros(1,m);

for ii=1:m;

y(ii)=sum(X(:,ii).^k)/n;

end

5. 协方差(矩阵)、相关系数(矩阵)

对于样本数据矩阵:

[]1112121

2221

21

2

n n n m m mn m n

x x x x x x X X X X x x x ?????

??==??????

Matlab 将矩阵X 的每一列X j , j=1,…,n 作为一个随机变量的样本,每一行[x j1,x j2, …, x jn ], j=1,2,...,m 作为n 个随机变量的联合分布的一个样本。

由于矩阵X 给出的只是随机变量的样本数据,并不知道这些随机变量的(联合)概率分布,因此是不能计算出这些随机变量的总体期望、方差或协方差的,而只能计算出它们的一个无偏估计,即样本均值、样本方差与样本协方差。

样本协方差公式:

1

1(,)()()1n

i i i COV X Y x x y y n ==---∑ 111212122212n n n n nn n n

c c c c c c c

c c ?????

??∑=

?????? , 其中(,)ij i j

c COV X X =

称为随机变量X 1, …, X n 的协方差矩阵(实对称、非负定)。

协方差矩阵是一维随机变量方差、二维随机向量协方差向高维随机向量的推广,常应用于在主成分分析中。

相关系数(矩阵)是协方差(矩阵)的标准化,反映了随机变量两两之间的线性关系的强弱程度。

代码:cov(X)——返回样本矩阵X 的协方差矩阵; corrcoef(X)——返回样本矩阵X 的相关系数矩阵;

例6随机生成样本数据矩阵X,计算X的协方差矩阵、相关系数矩阵。

代码:

M = 5;

N = 3;

X = 10.*rand(M, N)

CovX = cov(X)

Cov12 = cov(X(:,1),X(:,2))

Cov11 = cov(X(:,1),X(:,1))

var(X(:,1))

RhoX = corrcoef(X)

运行结果:

X = 1.0665 8.6869 4.3141

9.6190 0.8444 9.1065

0.0463 3.9978 1.8185

7.7491 2.5987 2.6380

8.1730 8.0007 1.4554

CovX = 19.6061 -6.3812 5.3900

-6.3812 11.6214 -5.5894

5.3900 -5.5894 9.7937

Cov12 = 19.6061 -6.3812

-6.3812 11.6214

Cov11 = 19.6061 19.6061

19.6061 19.6061

VarX1 = 19.6061

RhoX = 1.0000 -0.4227 0.3890

-0.4227 1.0000 -0.5239 0.3890 -0.5239 1.0000

七、频率直方图

1. 统计数值或字符出现的频数、频率

设X 为数值型或字符型向量,代码:tabulate(X); 输出X 的值、频数、频率的三列表。

注意:若X 中的值都是非负整数,则min(X)与max(X)之间的任一整数都统计,未出现的频数=0.

2. 经验分布函数

1,, ()n n x x x F x n

≤=

中的个数

实际上是累积频率直方图曲线。依据样本以频率估计概率,当n 充分大时,()n F x 是总体分布函数()F x 的近似。

例7 生成指数分布随机数,计算其经验分布函数值并绘图,并与其分布函数做对比。

代码:

X=exprnd(3,100,1);

[fp,xp] = ecdf(X); % 计算经验分布函数值 subplot(1,2,1)

ecdfhist(fp,xp,20); % 绘制频率直方图 subplot(1,2,2)

plot(xp,fp,'r') % 绘制经验分布函数图形(连线型) hold on

[h,stats]=cdfplot(X) % 绘制经验分布函数图形(阶梯型)

x=0:0.01:15; y=expcdf(x,3); plot(x,y,'g');

legend('连线型经验分布函数','阶梯型经验分布函数','分布函数');

运行结果:h = 177.0125(图形句柄) stats = min: 0.0180 max: 27.9801

mean: 3.2968 median: 2.1667 std: 3.2969

3. 直方图

定量数据常用直方图来展示某变量取值的分布,利用直方图可以估计总体的概率密度。

例8 随机生成服从F(3,5)分布的样本数据,绘制直方图并与该分布的真实概率密度曲线做对比。

代码:

n=5000;

X=frnd(3,5,n,1); % 生成F 分布随机数 m=150; % 分组区间数 a=min(X); b=max(X);

d=(b-a)/m; % 分组宽度

x

F (x )

Empirical CDF

[r,xout]=hist(X,[a:d:b]); % 或者[r,xout]=hist(X,m);

% 计算直方图数据, r返回每段的频数, xout返回每段的中心位置

f=r./(n*d); % 计算频率

bar(xout,f); % 绘制频率直方图

hold on

x=0:0.01:10;

y=fpdf(x,3,5);

plot(x,y,'k-');

axis([0 10 0 1]);

title('频率密度直方图');

运行结果:

频率密度直方图

0246810注:也可以用例7中方法绘制频率直方图:

[fp,xp] = ecdf(X); % 计算经验分布函数值

ecdfhist(fp,xp,20); % 绘制频率直方图

4. 绘制分布的概率图形

normplot(X)——绘制X 的正态分布概率图形(若X 为矩阵,则针对每列绘制);可以用来验证数据X 是否服从正态分布,若是,则近似一条直线。

类似的还有,weibplot(X)——绘制X 的威布尔分布概率图形。 例9 随机生成服从正态分布的随机数据,绘制其正态概率分布图形,验证数据的正态性。

代码:

X = normrnd(5,1.44,100,1);

normplot(X)

运行结果:

八、箱线图

又称为盒形图。在一条数轴上,以数据的上下四分位数(Q 1-Q 3)为界画一个矩形盒子(中间50%的数据落在盒内);在数据的中位数

1

2

3

4

56

7

8

9

0.003

0.010.020.050.100.250.500.75

0.900.950.980.99

0.997Data

P r o b a b i l i t y

Normal Probability Plot

位置画一条线段为中位线;默认延长线不超过盒长的1.5倍,之外的点认为是异常值(用+标记)。

盒形图的主要应用就是,剔除数据的异常值、判断数据的偏态和尾重。代码:

boxplot(X,notch,'sym',vert,whis)

当notch=1时,产生一凹盒图,notch=0时产生一矩箱图;sym表示异常值的标记符号,默认值为“+”;当vert=0时,生成水平盒图,vert=1时,生成竖直盒图(默认值vert=1);whis定义“须线”的长度,默认值为1.5.

例10 绘制箱线图。

代码:

x1 = normrnd(5,1,100,1);

x2 = normrnd(6,1,100,1);

x = [x1 x2];

boxplot(x,0,'g+',1,1.5)

运行结果:

注:若有异常值,应先去掉异常值,再重新绘制修正的箱线图。

九、参数估计

刻画总体某方面概率特性的量,称为参数;当某参数未知时,从总体抽取样本,用某种方法(矩估计、最大似然估计)对该未知参数进行估计,就是参数估计。

通过构造样本的函数,给出未知参数的估计值(点估计)、取值范围(区间估计)。

1. 通过格式(基于最大似然估计)

[phat,pci]=分布名缩写+fit(X, alpha)

phat返回参数的点估计值,pci返回区间估计的两端点;alpha为显著水平,即估计结果具有(1-alpha)×100%的置信度。

注意:对于二项分布的参数估计需要带参数“N”表示试验次数:

[phat, pci]= binofit (x, N, alpha)

2. 或者使用

[phat,pci]=mle(‘分布名缩写’, X, alpha)

对于二项分布为:[phat,pci]=mle(‘分布名缩写’, X, alpha, N)

3. 求最大对数似然函数值

[logL, info]=分布名缩写+like(给定参数, X) 其中,给定参数为行向量形式,输入的是参数的极大似然估计值;info返回回Fisher逆信息矩阵,其对角线为为相应参数的渐近方差。例11某厂生产的滚珠随机抽取10个,测得滚珠直径(mm)如下:

15.14 14.81 15.11 15.26 15.08

15.17 15.12 14.95 15.05 14.87

设测定值总体服从N(μ, σ2), μ和σ未知,分别求μ和σ的最大似然估计以及95%的置信区间。

代码:

X=[15.14 14.81 15.11 15.26 15.08 15.17 15.12 14.95 15.05 14.87];

[muhat,sigmaheat,muci,sigmaci]=normfit(X, 0.05)

运行结果:muhat = 15.0560sigmahat = 0.1397

muci = 14.9561

15.1559

sigmaci = 0.0961

0.2550

logL = -5.9933

info = 0.0020 0.0000

0.0000 0.0011

十、假设检验

实际中,我们只能抽取部分样本,做统计分析得到统计结果,进一步推断总体的特征,但是这种推断必然有可能犯错,犯错的概率为多少时应该接受这种推断呢?

为此,统计学家就开发了一些统计方法进行统计检定,通过把所得到的统计检定值,与统计学家树立了一些随机变量的概率分布进行

对比,我们可以知道在百分之多少的机遇下会得到目前的结果。

倘若经比较后发现,涌现这结果的机率很少,即是说,是在时机很少、很罕有的情况下才出现;那我们便可以有信念地说,这不是巧合,该推断结果是具有统计学上的意义的。否则,就是推断结果不具有统计学意义。

假设检验是基于反证法思想:先提出原假设(H0),再用适当的统计方法确定假设成立的可能性(P值)大小,如可能性小(P≤α),则认为原假设不成立,若可能性大,则还不能认为备择假设(H1)成立。

原假设与备择假设是是完备且相互独立的事件组,一般,

原假设(H0)——研究者想收集证据予以反对的假设;

备择假设(H1)——研究者想收集证据予以支持的假设;

假设检验的P值是由检验统计量的样本观察值得出的原假设可被拒绝的最小显著水平。

(1)双侧检验(H1: μ≠μ0)

I. 原假设H0: μ=μ0, 备择假设H1: μ≠μ0;

Ⅱ. 根据样本数据计算出统计量t的观察值t0;

Ⅲ. P值= P{|t| ≥ |t0|} = t0的双侧尾部的面积;

Ⅳ. 若P值≤α(在右尾部分),则在显著水平α下拒绝H0;

若P值>α,则在显著水平α下接受H0;

注意:α为临界值,看P值在不在阴影部分(拒绝域),空白部分为接受域。

数值计算方法实验指导(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数值计算功能 1,基础运算 (1)多项式的创建与表达 将多项式(x-6)(x-3)(x-8)表示为系数形式 a=[6 3 8] % 写成根矢量 pa=poly(a)% 求出系数矢量 ppa=poly2sym(pa,'x') % 表示成符号形式 ezplot(ppa,[-50,50]) 求3介方阵A的特征多项式 a=[6 2 4;7 5 6;1 3 6 ]; pa=poly(a)% 写出系数矢量 ppa=poly2sym(pa) %表示成符号形式 ezplot(ppa,[-50,50]) % 绘图 求x^3-6x^2-72x-27的根。 a=[1,-6,-72,-85]; % 写出多项式系数矢量 r=roots(a) % 求多项式的根 (2)多项式的乘除运算 c=conv(a,b) %乘法 [q,r]=deconv(c,a)% 除法 求a(s)=s^2+2s+3乘以b(s)=4s^2+5s+6的乘积 a=[1 2 3] b=[4 5 6] % 写出系数矢量 c=conv(a,b) c=poly2sym(c,'s') % 写成符号形式的多项式 展开(s^2+2s+2)(s+4)(s+1)并验证结果被(s+4),(s+3)除后的结果。c=conv([1,2,2],conv([1,4],[1,1])) cs=poly2sym(c,'s') c=[1 7 16 18 8] [q1,r1]=deconv(c,[1,4]) [q2,r2]=deconv(c,[1,3]) cc=conv(q2,[1,3]) test=((c-r2)==cc)

其他常用的多项式运算命令 pa=polyval(p,s) % 按数组规则计算给定s时多项式的值 pm=polyvalm(p,s)% 按矩阵规则计算给定s时多项式的值 [r,p,k]=residue(b,a) % 部分分式展开,b,a分别是分子,分母多项式系数矢量。r,p,k分别是留数,极点和值项矢量。 p=poly(x,y,n) % 用n介多项式拟合给定的数据 polyder(p) %多项式微分 x=[1 2 3 4 5]; y=[5.5 43.1 128 290.7 498.4]; p=polyfit(x,y,3) x2=1:0.1:5; y2=polyval(p,x2); plot(x,y,'o',x2,y2) 2,线性代数 1,求解方程的根 t=[0 0.3 0.8 1.1 1.6 2.3]'; y=[0.82 0.72 0.63 0.60 0.55 0.50]'; e=[ones(size(t)) exp(-t)] c=e\y t1=[0:0.1:2.5]'; y1=[ones(size(t1)),exp(-t1)]*c; plot(t1,y1,'b',t,y,'ro') 2,逆矩阵及行列式 inv(a) det(a) pinv(a) 3,矩阵分解(略) 4,数据分析 max(x)求x各列的最大元素 mean(x)求x各列的平均值 median(x)找出x各列的中位元素 min(x)求出x各列的最小元素 S=cumsum(x)求x各列元素累计和 sort(x)使x的各列元素按递增排序。 std(x)求x各列的标准差。 sum(x)求x各列元素之和 prod(x)求x各列元素之积

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

第06章_MATLAB数值计算_例题源程序汇总

第6章 MATLAB 数值计算 例6.1 求矩阵A 的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元素。 1356 78256323578255631 01-???? -? ?=???? -??A A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]; max(A,[],2) %求每行最大元素 min(A,[],2) %求每行最小元素 max(A) %求每列最大元素 min(A) %求每列最小元素 max(max(A)) %求整个矩阵的最大元素。也可使用命令:max(A(:)) min(min(A)) %求整个矩阵的最小元素。也可使用命令:min(A(:)) 例6.2 求矩阵A 的每行元素的乘积和全部元素的乘积。 A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2) prod(S) %求A 的全部元素的乘积。也可以使用命令prod(A(:)) 例6.3 求向量X =(1!,2!,3!,…,10!)。 X=cumprod(1:10) 例6.4 对二维矩阵x ,从不同维方向求出其标准方差。 x=[4,5,6;1,4,8] %产生一个二维矩阵x y1=std(x,0,1) y2=std(x,1,1) y3=std(x,0,2) y4=std(x,1,2) 例6.5 生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。 X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)

例6.6 对下列矩阵做各种排序。 185412613713-?? ??=?? ??-?? A A=[1,-8,5;4,12,6;13,7,-13]; sort(A) %对A 的每列按升序排序 -sort(-A,2) %对A 的每行按降序排序 [X,I]=sort(A) %对A 按列排序,并将每个元素所在行号送矩阵I 例6.7 给出概率积分 2 (d x x f x x -? e 的数据表如表6.1所示,用不同的插值方法计算f (0.472)。 x=0.46:0.01:0.49; %给出x ,f(x) f=[0.4846555,0.4937542,0.5027498,0.5116683]; format long interp1(x,f,0.472) %用默认方法,即线性插值方法计算f(x) interp1(x,f,0.472,'nearest') %用最近点插值方法计算f(x) interp1(x,f,0.472,'spline') %用3次样条插值方法计算f(x) interp1(x,f,0.472,'cubic') %用3次多项式插值方法计算f(x) format short 例6.8 某检测参数f 随时间t 的采样结果如表6.2,用数据插值法计算t =2,7,12,17,22,17,32,37,42,47,52,57时的f 值。 T=0:5:65; X=2:5:57;

(完整版)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关于数值计算的实现

Matlab关于数值计算的实现 摘要:数值计算(numerical computation computation),主要研究更好的利用计算机更好的进行数值计算,解决各种数学问题。数值分析包括离散傅里叶变换,考虑截断误差,计算误差,函数的敛散性与稳定性等。在数学方面,数值计算的主要研究数值微分与积分,数据的处理与多项式计算,最优化问题,线性方程与非线性方程的求解,常微分方程的数值求解等。同时,数值计算在物理,化学,经济等方面也有研究,本文暂且不表。M atlab软件历经二十多年来的发展,已成为风靡世界的数学三大软件(matlb,Mathematica l,Maple)之一,在数学类科技应用软件中在数值计算方面首屈一指。Matlab以矩阵为数据操作的基本单位,使得矩阵运算十分便捷快速,同时Matlab还提供了海量的计算函数,而且使用可靠地算法进行计算,能使用户在繁复的数学运算中解脱,Matlab还具有方便且完善的图形处理功能,方便绘制二维和三维图形并修饰。

目录 1.数值分析(离散傅里叶变换,考虑截断误差,计算误差,函数 的敛散性与稳定性) 2.数值计算(数值微分与积分,数据的处理与多项式计算, 最优化问题,线性方程与非线性方程的求解,常微分方程的数值求解) 3.图形处理功能(方便绘制二维和三维图形并修饰) 4.总结

1.数据统计与分析 Matlab 可以进行求矩阵的最大最小元素,平均值与中值,关于矩阵元素的求和与求积,累加和与累乘积,标准方程,相关系数,元素排序。现在以求标准方差举例说明Matlab 的实现。 在Matlab 中,实现标准方差计算的函数为std 。对于向量(Y ),std (Y )实现返回一个标准方差,而对于矩阵(A ),std (A )返回一个行向量,该行向量的每个元素对应着矩阵A 各行或各列的标准方差。一般调用std 函数的格式为std (A ,flag ,dim ) Dim 取1或者2分别对应求各列或各行的标准方差,flag 取1时,按照标准方差的计算公式 ∑-=-=N i x x S i N 1 2 1)(11来计算。若flag 取2,则用公式 ∑-==N i x x S i N 1 2 2) (1 进行计算。默认的flag 取值为0,dim 取值为1。课本page143 2. 离散傅里叶变换 离散傅里叶变换广泛应用于信号的分析,光谱和声谱分析、全息技术等各个领域。但直接计算dft 的运算量与变化的长度N 的平方成正比,当N 较大时,计算量太大。随着计算机技术的迅速发展,在计算机上进行离散傅里叶变换计算成为可能。特别是快速傅里叶变换算法的出现,为傅里叶变换的应创造了条件。 (1):傅里叶变换算法的简述。 傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分. f(t)是t 的周期函数,如果t 满足狄里赫莱条件:在一个以2T 为周期内f(X)连续或只有有限个第一类间断点,附f (x )单调或可划分成有限个单调区间,则F (x )以2T 为周期的傅里叶级数收敛,和函数S (x )也是以2T 为周期的周期函数,且在这些间断点上,函数是有限值;在一个周期内具有有限个极值点;绝对可积。则有下图①式成立。称为积分运算f(t)的傅立叶变换, ②式的积分运算叫做F(ω)的傅立叶逆变换。F(ω)叫做f(t)的像函数,f(t)叫做 F(ω)的像原函数。F(ω)是f(t)的像。f(t)是F(ω)原像。 ①傅立叶变换 ②傅立叶逆变换

相关文档
最新文档