主题:如何在给定的上下界范围内产生一定数量的随机数
jairq12
[专家分:0] 发布于 2010-09-29 15:58:00
情况如下 向量 x=(932.7,219.2,0.112,0.0054,0.51)
上界为1.5x;
下界为0.5x;
望高手指点,如何在这个上下界范围内产生n个5维随机向量??不胜感谢!
回复列表 (共29个回复)
沙发
jstzhurj [专家分:4680] 发布于 2010-09-29 17:24:00
参考 http://bbs.pfan.cn/post-348377.html是产生(0-1)的随机数,范围:乘上一定系数,再加上固定常数。
板凳
BiCGSTAB [专家分:780] 发布于 2010-09-30 03:08:00
参考 http://bbs.pfan.cn/post-348377.html是产生(0-1)的随机数,范围:乘上一定系数,再加上固定常数。
===========================
独立均匀分布当然可以这样做, 但是不知LZ什么要求
估计应该是均匀分布, 而且每个向量的五个分量是独立的, 但是n个向量的联合分布不太清楚
3 楼
cgl_lgs [专家分:21040] 发布于 2010-09-30 07:15:00
我想到的有以下幾種:
1、如果需要保證新向量的方向與原向量相同,那就生成0.5到1.5之間的數,然后乘以那個基向量就行了;
2、如果需要保證新向量的每個分量都在基向量的0.5到1.5之間的話,那就生成5次0.5到1.5之間的數,并且分別乘以每個維度;
3、如果需要保證的是向量的模,那相當于生成一個5維的殼體,則生成4個正負1.5之間的系數并分別乘以前4維,最后一維的范圍則用平方和的根號來計算:)
4 楼
jairq12 [专家分:0] 发布于 2010-09-30 14:45:00
[quote]参考 http://bbs.pfan.cn/post-348377.html是产生(0-1)的随机数,范围:乘上一定系数,再加上固定常数。
===========================
独立均匀分布当然可以这样做, 但是不知LZ什么要求
估计应该是均匀分布, 而且每个向量的五个分量是独立的, 但是n个向量的联合分布不太清楚[/quote]
非常感谢,希望能用正交拉丁方产生这些向量样本点,但如果用正交拉丁方产生太复杂,用一般的均匀分布也可以。只是本人初学fortran 不知道程序该怎么表述。请求指点。
5 楼
jstzhurj [专家分:4680] 发布于 2010-09-30 14:46:00
“上界为1.5x;下界为0.5x”,似乎说的是方向一致;“在这个上下界范围内产生n个5维随机向量”,似乎又在说方向任意!方向随机?还是模随机?[em18][em18]
◥█▄▃▁
...◥█☆█▅▄▃▁▁▁▁▁▁▁▃▄▅00▅▄▁
〓▇█████热烈祝贺祖国61华诞!████████████▅▄▃▁▁
〓〓〓█████████████◤
OO═══∩═══OO
6 楼
jairq12 [专家分:0] 发布于 2010-09-30 14:47:00
[quote]我想到的有以下幾種:
1、如果需要保證新向量的方向與原向量相同,那就生成0.5到1.5之間的數,然后乘以那個基向量就行了;
2、如果需要保證新向量的每個分量都在基向量的0.5到1.5之間的話,那就生成5次0.5到1.5之間的數,并且分別乘以每個維度;
3、如果需要保證的是向量的模,那相當于生成一個5維的殼體,則生成4個正負1.5之間的系數并分別乘以前4維,最后一維的范圍則用平方和的根號來計算:)[/quote]
非常感谢,希望能用正交拉丁方产生这些向量样本点,但如果用正交拉丁方产生太复杂,用一般的均匀分布也可以。那几本就是您说的第1种了,只是本人初学fortran 不知道程序该怎么表述。请求指点。
7 楼
jairq12 [专家分:0] 发布于 2010-09-30 15:03:00
[quote]“上界为1.5x;下界为0.5x”,似乎说的是方向一致;“在这个上下界范围内产生n个5维随机向量”,似乎又在说方向任意!方向随机?还是模随机?[em18][em18]
◥█▄▃▁
...◥█☆█▅▄▃▁▁▁▁▁▁▁▃▄▅00▅▄▁
〓▇█████热烈祝贺祖国61华诞!████████████▅▄▃▁▁
〓〓〓█████████████◤
OO═══∩═══OO
[/quote]
非常感谢您的回复,不好意思,是我没表述清楚,其实这里就是要随机生成一个n×5的矩阵,只是矩阵每列的元素值A(1:n,j)j=1-5都要落在1.5X(j)和0.5X(j)之间。这样就可以了,至于按照什么分布生成,可以采用均匀分布。
8 楼
jairq12 [专家分:0] 发布于 2010-09-30 15:03:00
[quote]我想到的有以下幾種:
1、如果需要保證新向量的方向與原向量相同,那就生成0.5到1.5之間的數,然后乘以那個基向量就行了;
2、如果需要保證新向量的每個分量都在基向量的0.5到1.5之間的話,那就生成5次0.5到1.5之間的數,并且分別乘以每個維度;
3、如果需要保證的是向量的模,那相當于生成一個5維的殼體,則生成4個正負1.5之間的系數并分別乘以前4維,最后一維的范圍則用平方和的根號來計算:)[/quote]
非常感谢您的回复,不好意思,这里我有点我没表述清楚,其实这里就是要随机生成一个n×5的矩阵,只是矩阵每列的元素值A(1:n,j)j=1-5都要落在1.5X(j)和0.5X(j)之间。这样就可以了,至于按照什么分布生成,可以采用均匀分布。
9 楼
jairq12 [专家分:0] 发布于 2010-09-30 15:04:00
[quote]参考 http://bbs.pfan.cn/post-348377.html是产生(0-1)的随机数,范围:乘上一定系数,再加上固定常数。
===========================
独立均匀分布当然可以这样做, 但是不知LZ什么要求
估计应该是均匀分布, 而且每个向量的五个分量是独立的, 但是n个向量的联合分布不太清楚[/quote]
非常感谢您的回复,不好意思,这里我有点我没表述清楚,其实这里就是要随机生成一个n×5的矩阵,只是矩阵每列的元素值A(1:n,j)j=1-5都要落在1.5X(j)和0.5X(j)之间。这样就可以了,至于按照什么分布生成,可以采用均匀分布。
10 楼
jairq12 [专家分:0] 发布于 2010-09-30 15:05:00
[quote]
参考 http://bbs.pfan.cn/post-348377.html是产生(0-1)的随机数,范围:乘上一定系数,再加上固定常数。[/quote]
非常感谢您的回复,不好意思,这里我有点我没表述清楚,其实这里就是要随机生成一个n×5的矩阵,只是矩阵每列的元素值A(1:n,j)j=1-5都要落在1.5X(j)和0.5X(j)之间。这样就可以了,至于按照什么分布生成,可以采用均匀分布。
我来回复