怎么在matlab中生成一个随机的强联通图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在matlab中生成一个随机的强联通图相关的知识,希望对你有一定的参考价值。

参考技术A 系统产生一个0到1的实随机数, 然后乘以所设的最大的可能随机数,然后就得到0到10,100,..,等等的实随机数; 整数随机数就是这些实随机数取整后得到的. rand() (0,1)均匀分布随机矩阵 randn() 标准正态分布矩阵 randint(c,d [a ,b]) 随机整数矩阵

如何在Matlab中生成具有对数正态分布和指定几何平均数和几何标准差的随机数

【中文标题】如何在Matlab中生成具有对数正态分布和指定几何平均数和几何标准差的随机数【英文标题】:how to generate random numbers with lognormal distribution and with specified geometric mean and geometric standard deviationin Matlab 【发布时间】:2011-12-02 06:01:10 【问题描述】:

我想生成一些具有指定几何平均值 (GM) 和几何标准差 (GSD) 的对数正态分布的随机数,例如 GM=10 和 GSD=2.5。 我如何在 Matlab 中做到这一点?我查找了 Matlab 的帮助并找到了这个链接,但我想使用我的初始输入作为 GM 和 GSD,而不是均值和方差。

http://www.mathworks.com/help/toolbox/stats/lognrnd.html

【问题讨论】:

您可能会在本网站的数学版here 获得更好的受众。 或统计版本 [这里](stats.stackexchange.com)。 【参考方案1】:

Wikipedia 表示对数正态分布的几何平均值为exp(µ),几何标准差为exp(sigma)。所以就这样做吧:

rn = lognrnd(log(GM), log(GSD));

【讨论】:

【参考方案2】:

难写,因为 *** 没有数学标记(可能是下面的一些 LaTeX 错误),但是如果我们将 $m_a$ 和 $m_g$ 定义为算术和几何平均值,并将 $s_a$ 和 $s_g$ 定义为算术和几何标准差:

$m_a = exp(\mu + \sigma^2/2),$

$m_g = m_a exp(-\sigma^2/2),$

$s_g = exp(\sigma) \sigma = log(s_g)$

如果 $m_g = 10$,则 $m_a = 10/\exp(-\sigma^2/2) = 10/\exp(-\log(s_g)^2/2)$,并且

$s_g = (\exp(\sigma^2)-1)\exp(\mu \s_g = \exp(\mu + \sigma^2/2)\sqrt\exp(\sigma^2 - 1) 。 $

所以:

 GM = 10; GSD = 2.5;
 M = 10/exp(-log(GSD)^2/2);
 V = exp(log(GM)+log(GSD)^2/2)*sqrt(exp(log(GSD)^2)-1);
 MU = log(M^2 / sqrt(V+M^2))
 SIGMA = sqrt(log(V/M^2 + 1))

 >> lognrnd(MU, SIGMA, 10, 1)

 ans =

   18.5128
   15.9902
   10.3143
   13.0549
   16.0934
   38.5006
   30.9571
   10.1976
   33.2538
   17.8427

【讨论】:

注意lognrandn中的参数musigma是相关正态分布的算术平均值和标准差(不是生成的对数正态分布)。特别是,使用建议的方法生成的分布不会有 10 作为几何平均值(从 10 个样本中观察,没有一个小于 10)。 感谢 tdc 的回答。我检查了你的方法生成的数字,GM确实大于10。 啊抱歉 - 我会说 matlab 的参数化毫无帮助!

以上是关于怎么在matlab中生成一个随机的强联通图的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2767-Proving Equivalences(强联通+缩点)

51nod 1076 2条不相交的路径 无向图强联通分量 trajan算法

图之强连通强连通图强连通分量 Tarjan算法

有向图的强联通分量

如何在matlab中生成概率3D图

无向图的强连通分量