主要内容

sobolset

Sobol准随机点集

描述

sobolset是一个准随机点集对象,它从Sobol序列中产生点。Sobol序列是一种以2为基数的数字序列,它以高度均匀的方式填充空间。

创建

描述

p= sobolset (d构造一个d-维点集p,这是一个sobolset具有默认属性设置的对象。输入参数d对应于的属性p

例子

p= sobolset (d名称,值属性p使用一个或多个名称-值对参数。将每个属性名用引号括起来。例如,sobolset(5“飞跃”2)从第一个点、第四个点、第7个点、第10个点等等开始创建一个五维点集。

返回的对象p封装了Sobol准随机序列的性质。点集是有限的,其长度由跳过而且飞跃属性和通过限制点集索引的大小(最大值为253).无论何时访问,都会生成点集的值p使用或圆括号索引。值不存储在p

属性

全部展开

此属性是只读的。

点集中点的维数,指定为区间[1,1111]中的正整数标量。例如,点集中的每个点pp.尺寸= 5有五个值。

使用d属性创建点集时,Input参数指定维数sobolset函数。

使用reduceDimensions对象函数来减少创建点集后的维数。

序列中点之间的间隔,指定为正整数标量。换句话说,飞跃属性指定了序列中每取一个点都要跳过和省略的点数。默认的飞跃Value为0,对应于取序列中的每一个点。

跳跃是一种用于提高点集质量的技术。但是,你必须选择飞跃谨慎的价值观。许多飞跃值创建的序列不能接触到单位超立方体的大的子超矩形,因此,不能是一个统一的准随机点集。有关更多信息,请参见[4]

例子:p = sobolset(__,'Leap',50);

例子:p.Leap = 100;

点位生成方法,指定为“标准”“graycode”.的PointOrder属性指定生成Sobol序列点的顺序。当PointOrder设置为“标准”,生成的点与原始Sobol序列实现相匹配。当PointOrder设置为“graycode”,序列是由一个使用索引的Gray代码而不是索引本身的实现生成的。

您可以使用“graycode”选择更快的序列生成,但软件然后改变生成点的顺序。有关Gray代码实现的更多信息,请参见[1]

例子:p = sobolset(__,'PointOrder','graycode');

例子:p.PointOrder = 'standard';

控制序列置乱的设置,指定为具有以下字段的结构:

  • 类型-包含scramble名称的字符向量

  • 选项-用于scramble的参数值单元格数组

使用争夺对象函数来设置乱序。有关有效置乱类型的列表,请参见类型的输入参数争夺.如果为给定点集设置了无效的置乱类型,则会发生错误。

ScrambleMethod属性还接受空矩阵作为值。然后,软件清除所有置乱,并将属性设置为包含0 x0结构。

序列中要从点集中省略的初始点的数目,指定为正整数标量。

序列的初始点有时会表现出不受欢迎的性质。例如,第一点是经常(0, 0, 0,…),这可能导致序列不平衡,因为对应的点,(1, 1, 1,…),从未出现过。此外,初始点通常在不同维度之间表现出相关性,而这些相关性在序列的后面消失。

例子:p = sobolset(__,'Skip',2e3);

例子:p.Skip = 1e3;

此属性是只读的。

拟随机点集合在其上的序列类型p的基础,指定为“Sobol”

对象的功能

生成准随机点集
reduceDimensions Sobol点集的降维
争夺 对拟随机点集进行置乱

也可以使用下面的MATLAB®函数具有sobolset对象。该软件将点集对象视为多维点的矩阵。

长度 最大数组维度的长度
大小 数组大小

例子

全部折叠

生成一个三维Sobol点集,跳过前1000个值,然后保留每101个点。

P = sobolset(3,“跳过”1 e3,“飞跃”1 e2)
p = Sobol点集在3个维度(89180190640991点)属性:跳过:1000跳:100打乱方法:无PointOrder:标准

应用随机线性置乱与随机数字移位相结合的方法争夺

P = scramble(P,“MatousekAffineOwen”
p = Sobol点集在3个维度(89180190640991点)属性:跳过:1000跳:100打乱方法:MatousekAffineOwen PointOrder:标准

使用生成前四个点

X0 =净(p,4)
X0 =4×30.7601 0.5919 0.9529 0.1795 0.0856 0.0491 0.5488 0.0785 0.8483 0.3882 0.8771 0.8755

通过使用括号索引生成每第三个点,直到第11个点。

X = p(1:3:11,:)
X =4×30.7601 0.5919 0.9529 0.3882 0.8771 0.8755 0.6905 0.4951 0.8464 0.1955 0.5679 0.3192

提示

  • 跳过而且飞跃属性对于并行应用程序很有用。例如,如果您拥有并行计算工具箱™许可证,则可以对点序列进行跨分区N不同的工作人员使用该函数labindex(并行计算工具箱).在每一个n工人,设置跳过属性的值n- 1飞跃财产N- 1.下面的代码展示了如何在三个工作者之间划分一个序列。

    Nworkers = 3;P = sobolset(10,“飞跃”, Nworkers-1);spmd(Nworkers) p.Skip = labindex - 1;使用点1,4,7…计算一些东西。%或点2,5,8…或者点3,6,9…结束

算法

全部展开

参考文献

[1] P.布拉特利和B. L.福克斯。算法659实现Sobol的准随机序列发生器ACM数学软件汇刊.第14卷第1期,1988年,第88-100页。

[2]洪,H. S.和F. J.希克内尔。算法823:实现置乱数字序列ACM数学软件汇刊.第29卷,2003年第2期,第95-109页。

[3] Joe, S.和f.y. Kuo。算法659的注释:实现Sobol的准随机序列生成器ACM数学软件汇刊.第29卷,2003年第1期,第49-57页。

[4]科西斯,L.和W. J.怀特。低差异序列的计算研究ACM数学软件汇刊.第23卷第2期,1997年,第266-294页。

[5] Matousek, J.《关于锚定箱的l2差异》。复杂性杂志.第14卷第4期,1998年,第527-556页。

版本历史

在R2008a中引入