matlab如何产生多位随机数 (matlab如何生成随机数)

1、随机数的产生

(1)随机数是各种不同分布随机变量的抽样序列。进行随机信号仿真分析时,需要产生各种分布的随机数。

(2)产生方法: Matlab仿真

2、线性同余法

matlab在范围内生成随机数组,线性同余法产生随机数matlab

matlab在范围内生成随机数组,线性同余法产生随机数matlab

3、随机序列的数字特征估计

(1)随机序列X(n)具有各态历经性

可通过随机序列的一条样本函数来获得该信号的统计特性。

(2)数字特征估计

样本均值

matlab在范围内生成随机数组,线性同余法产生随机数matlab

matlab在范围内生成随机数组,线性同余法产生随机数matlab

样本方差

matlab在范围内生成随机数组,线性同余法产生随机数matlab

matlab在范围内生成随机数组,线性同余法产生随机数matlab

样本自相关函数

matlab在范围内生成随机数组,线性同余法产生随机数matlab

matlab在范围内生成随机数组,线性同余法产生随机数matlab

4、Matlab函数

(1)均值函数 m=mean(x)

(2)方差函数 sigma2=var(x)

(3)互相关函数:xcorr 用法:c=xcorr(x,y) ;C=xcorr(x)

功能:xcorr(x,y)计算x(n)与y(n)的互相关;xcorr(x)计算x(n)的自相关。

5、例题:

采用线性同余法产生均匀分布随机数N个,计算该序列的均值和方差与理论值之间的误差大小;

代码如下:

clear; clc;

N = 2^31; %一组参数

K = 2^16+3; %一组参数

y = zeros(1,1000); %随机数初始矩阵,即N为1000

un = zeros(1,1000);

y(1) = 1;

for i = 1:1000 %线性同余

y(i+1) = mod(K*y(i),N);

un(i) = y(i+1)/N;

end

plot(y); %可视化

xlabel('横坐标');

ylabel('产生的随机数');

title('随机数可视化');

m = mean(un) %均值

sigma2 = var(un) %方差

ms = 1/2 %均值标准值

sigma2s = 1/12 %方差标准值

Em = abs(m-ms)/ms %计算均值误差

Esigma2 = abs(sigma2-sigma2s)/sigma2s %计算方差误差