matlab逆变换法产生随机数_matlab中的rand函数(用于产生随机数)

均匀分布的随机数或矩阵

语法

Y = rand(n)

Y = rand(m,n)

Y = rand([m n])

Y = rand(m,n,p,...)

Y = rand([m n p...])

Y = rand(size(A))

rand

s = rand('state')

描述

rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。

Y = rand(n) 返回一个n x n的随机矩阵。如果n不是数量,则返回错误信息。

Y = rand(m,n) 或 Y = rand([m n]) 返回一个m x n的随机矩阵。

Y = rand(m,n,p,...) 或 Y = rand([m n p...]) 产生随机数组。

Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。

1,rand(3)*-2   rand(3)是一个3*3的随机矩阵(数值范围在0~1之间)

然后就是每个数乘上-2

2 ,用matlab随机产生60个1到365之间的正数   1+fix(365*rand(1,60));

3,用rand函数随机取100个从-1到1的数x1,x2,...,x = rand(1,100) * 2 - 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。 首先,我们需要了解一下指数分布的概率密度函数: $$f(x;\lambda)=\begin{cases} \lambda e^{-\lambda x}, & x \geq 0 \\ 0, & x<0 \end{cases}$$ 其,$\lambda$ 是指数分布的参数,表示单位时间内随机事件发生的平均次数。 接下来,我们可以采用逆变换(直接抽样)来生成指数分布的随机数。该方的思路是先生成一个 $[0,1]$ 之间的均匀分布随机数 $u$,然后再通过指数分布的累积分布函数 $F(x)=1-e^{-\lambda x}$ 的逆函数 $F^{-1}(u)=-\frac{\ln(1-u)}{\lambda}$ 来得到指数分布随机数 $x$,即 $x=F^{-1}(u)$。 下面是 MATLAB 代码实现: ```matlab % 设置参数 lambda = 2; % 生成随机数 N = [100, 1000, 10000]; for i = 1:length(N) u = rand(N(i), 1); x = -log(1 - u) / lambda; % 绘制经验概率密度函数 figure; histogram(x, 'Normalization', 'pdf'); hold on; % 绘制理论概率密度函数 xx = linspace(0, max(x), 1000); yy = lambda * exp(-lambda * xx); plot(xx, yy, 'r', 'LineWidth', 2); % 添加图例和标题 legend('Empirical PDF', 'Theoretical PDF'); title(['Exponential Distribution (\lambda=', num2str(lambda), '), N=', num2str(N(i))]); end ``` 运行上述代码后,即可得到生成的随机数及其对应的经验概率密度函数与理论概率密度函数的对比图,如下图所示: ![Exponential Distribution](https://img-blog.csdnimg.cn/20211106165818933.png) 从图可以看出,随着生成的随机数数量的增加,经验概率密度函数逐渐接近于理论概率密度函数,验证了逆变换的正确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值