主要内容

索波尔塞特

Sobol拟随机点集

描述

索波尔塞特是从Sobol序列生成点的拟随机点集对象。Sobol序列是一个以高度均匀的方式填充空间的base-2数字序列。

创造

描述

P=sobolset(D)构建一个D-维点集P,也就是索波尔塞特具有默认属性设置的对象。输入参数D对应于尺寸性质P

实例

P=sobolset(D,名称、值)设置性质属于P使用一个或多个名称-值对参数。将每个属性名称括在引号中。例如,sobolset(5“飞跃”2)从第一个点、第四个点、第七个点、第十个点等创建五维点集。

返回的对象P封装Sobol拟随机序列的属性。点集是有限的,其长度由跳过飞跃点集索引大小的属性和限制(最大值为253)。每次访问时都会生成点集的值P使用或括号索引。值不存储在P

性质

全部展开

此属性是只读的。

点集中点的维数,在区间[11111]中指定为正整数标量。例如,点集中的每个点P具有p.Dimensions = 5有五个值。

使用D输入参数,指定使用创建点集时的标注数索波尔塞特作用

使用reduceDimensions对象函数,用于在创建点集后减少维数。

序列中点之间的间隔,指定为正整数标量飞跃点集的属性指定每个点在序列中要跳过和忽略的点数。默认值为飞跃值为0,对应于从序列中获取每个点。

跳跃是一种用于提高点集质量的技术。但是,您必须选择飞跃谨慎的价值观。很多飞跃值创建的序列无法接触单位超立方体的大型子超矩形,因此无法成为统一的拟随机点集。有关更多信息,请参阅[4]

例子:p = sobolset(__,“飞跃”,50);

例子:p、 Leap=100;

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

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

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

例子:p、 点顺序='标准';

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

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

  • 选择权-用于置乱的参数值的单元格数组

使用用于设置加扰的对象函数。有关有效加扰类型的列表,请参阅类型的输入参数. 如果为给定点集设置无效的置乱类型,则会发生错误。

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

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

序列的初始点有时会表现出不希望的特性。例如,第一个点通常是(0, 0, 0,…),这可能导致序列不平衡,因为点的对应项,(1,1,1,...)此外,初始点往往表现出不同维度之间的相关性,这些相关性在序列中稍后消失。

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

例子:p.Skip = 1 e3;

此属性是只读的。

拟随机点集所在的序列类型P基于,指定为“Sobol”

目标函数

生成拟随机点集
reduceDimensions Sobol点集的降维
置乱拟随机点集

你也可以使用下面的MATLAB®具有索波尔塞特对象。该软件将点集对象视为多维点的矩阵。

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

例子

全部崩溃

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

p=sobolset(3,“跳过”1 e3,“飞跃”,1e2)
p=三维中的Sobol点集(89180190640991点)属性:跳过:1000跳跃:100跳跃方法:无点顺序:标准

使用以下命令应用随机线性加扰和随机数字移位

p=扰码(p,“MatousekAffineOwen”)
p=三维中的Sobol点集(89180190640991点)属性:跳过:1000跳跃:100置乱方法:MatousekAffineOwen点顺序:标准

通过使用生成前四个点

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

使用括号索引,每三个点生成一次,直到第十一个点。

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] 实现索波尔拟随机序列发生器的659算法数学软件上的ACM事务第14卷,第1期,1988年,第88-100页。

[2] 算法823:实现加扰数字序列数学软件上的ACM事务.第29卷,第2期,2003年,95-109页。

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

[4] 低差异序列的计算研究数学软件上的ACM事务.第23卷第2期,1997年,第266-294页。

[5] 马托塞克,J.“关于锚固箱的L2差异。”复杂性杂志第14卷,第4期,1998年,第527-556页。

2008年推出