sobolset

Квазислучайная точка Sobol установлена

Описание

sobolset объект набора квазислучайной точки, который производит точки из последовательности Sobol. Последовательность Sobol является основой 2 цифровых последовательности, которые заполняют пробел очень универсальным способом.

Создание

Описание

p = sobolset(d) создает d- размерная точка установила p, который является sobolset объект с настройками свойства по умолчанию. Входной параметр d соответствует Dimensions свойство p.

пример

p = sobolset(d,Name,Value) свойства наборов p использование одного или нескольких аргументов пары "имя-значение". Заключите каждое имя свойства в кавычки. Например, sobolset(5,'Leap',2) создает пятимерный набор точки из первой точки, четвертой точки, седьмой точки, десятой точки, и так далее.

Возвращенный объект p инкапсулирует свойства Sobol квазислучайная последовательность. Набор точки конечен с длиной, определенной Skip и Leap свойства и пределами на размере точки устанавливают индексы (максимальное значение 253). Значения набора точки сгенерированы каждый раз, когда вы получаете доступ к p использование net или индексация круглой скобки. Значения не хранятся в p.

Свойства

развернуть все

Это свойство доступно только для чтения.

Количество размерностей точек в наборе точки в виде положительного целочисленного скаляра в интервале [1,1111]. Например, каждая точка в точке установила p с p.Dimensions = 5 имеет пять значений.

Используйте d входной параметр, чтобы задать количество размерностей, когда вы создаете набор точки с помощью sobolset функция.

Используйте reduceDimensions возразите функции, чтобы сократить количество размерностей после того, как вы создадите набор точки.

Интервал между точками в последовательности в виде положительного целочисленного скаляра. Другими словами, Leap свойство набора точки задает число точек в последовательности, чтобы прыгнуть и не использовать для каждой взятой точки. Leap по умолчанию значение 0, который соответствует взятию каждой точки от последовательности.

Прыгание является методом, используемым, чтобы улучшить качество набора точки. Однако необходимо выбрать Leap значения с осторожностью. Многие Leap значения создают последовательности, которым не удается затронуть большой sub-hyper-rectangles единичного гиперкуба и, поэтому, не удаться быть универсальным квазислучайным набором точки. Для получения дополнительной информации см. [4].

Пример: p = sobolset(__,'Leap',50);

Пример: p.Leap = 100;

Укажите метод генерации в виде 'standard' или 'graycode'. PointOrder свойство задает порядок, в котором производятся точки последовательности Sobol. Когда PointOrder установлен в 'standard', точки произвели, совпадают с исходной реализацией последовательности Sobol. Когда PointOrder установлен в 'graycode', последовательность сгенерирована реализацией, которая использует Код Грея индекса вместо самого индекса.

Можно использовать 'graycode' опция для более быстрой генерации последовательности, но программное обеспечение затем изменяет порядок сгенерированных точек. Для получения дополнительной информации о реализации Кода Грея см. [1].

Пример: p = sobolset(__,'PointOrder','graycode');

Пример: p.PointOrder = 'standard';

Настройки, которые управляют скремблированием последовательности в виде структуры с этими полями:

  • Type — Вектор символов, содержащий имя скремблирования

  • Options — Массив ячеек значений параметров для скремблирования

Используйте scramble возразите функции, чтобы установить скремблирования. Для списка допустимых типов скремблирования смотрите type входной параметр scramble. Ошибка происходит, если вы устанавливаете недопустимый тип скремблирования для данного набора точки.

ScrambleMethod свойство также принимает пустую матрицу как значение. Программное обеспечение затем очищает все скремблирование и устанавливает свойство содержать 0x0 структура.

Количество начальных точек в последовательности, чтобы не использовать от набора точки в виде положительного целочисленного скаляра.

Начальные точки последовательности иногда показывают нежелательные свойства. Например, первой точкой часто является (0,0,0,...), который может заставить последовательность быть несбалансированной потому что дубликат точки, (1,1,1,...), никогда не появляется. Кроме того, начальные точки часто показывают корреляции среди различных размерностей, и эти корреляции исчезают позже в последовательности.

Пример: p = sobolset(__,'Skip',2e3);

Пример: p.Skip = 1e3;

Это свойство доступно только для чтения.

Тип последовательности, на котором квазислучайная точка установила p базируется в виде 'Sobol'.

Функции объекта

netСгенерируйте набор квазислучайной точки
reduceDimensionsУменьшайте размерности набора точки Sobol
scrambleСкремблируйте набор квазислучайной точки

Можно также использовать следующие функции MATLAB® с sobolset объект. Программное обеспечение обрабатывает объект набора точки как матрица многомерных точек.

lengthДлина самого большого измерения массива
sizeРазмер массивов

Примеры

свернуть все

Сгенерируйте 3D набор точки Sobol, пропустите первые 1 000 значений, и затем сохраните каждую 101-ю точку.

p = sobolset(3,'Skip',1e3,'Leap',1e2)
p = 
Sobol point set in 3 dimensions (89180190640991 points)

Properties:
              Skip : 1000
              Leap : 100
    ScrambleMethod : none
        PointOrder : standard

Примените случайное линейное скремблирование, объединенное со случайным цифровым сдвигом при помощи scramble.

p = scramble(p,'MatousekAffineOwen')
p = 
Sobol point set in 3 dimensions (89180190640991 points)

Properties:
              Skip : 1000
              Leap : 100
    ScrambleMethod : MatousekAffineOwen
        PointOrder : standard

Сгенерируйте первые четыре точки при помощи net.

X0 = net(p,4)
X0 = 4×3

    0.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×3

    0.7601    0.5919    0.9529
    0.3882    0.8771    0.8755
    0.6905    0.4951    0.8464
    0.1955    0.5679    0.3192

Советы

  • Skip и Leap свойства полезны для параллельных приложений. Например, если у вас есть лицензия Parallel Computing Toolbox™, можно разделить последовательность точек через N различные рабочие при помощи функции labindex (Parallel Computing Toolbox). На каждом n th рабочий, набор Skip свойство набора точки к n – 1 и Leap свойство к N – 1. Следующий код показывает, как разделить последовательность через трех рабочих.

    Nworkers = 3;
    p = sobolset(10,'Leap',Nworkers-1);
    spmd(Nworkers)
        p.Skip = labindex - 1;
    
        % Compute something using points 1,4,7...
        % or points 2,5,8... or points 3,6,9...
    end

Алгоритмы

развернуть все

Ссылки

[1] Bratley, P. и Б. Л. Фокс. “Алгоритм 659 Реализаций Квазислучайный Генератор Последовательности Собола”. Транзакции ACM на Mathematical Software. Издание 14, № 1, 1988, стр 88–100.

[2] Гонконг, H. S. и Ф. Дж. Хикернелл. “Алгоритм 823: Реализация Скремблированных Цифровых Последовательностей”. Транзакции ACM на Mathematical Software. Издание 29, № 2, 2003, стр 95–109.

[3] Джо, S. и Ф. И. Куо. “Отметьте относительно Алгоритма 659: Реализация Квазислучайного Генератора Последовательности Собола”. Транзакции ACM на Mathematical Software. Издание 29, № 1, 2003, стр 49–57.

[4] Kocis, L. и В. Дж. Уайтн. “Вычислительные Расследования Последовательностей Низкого Несоответствия”. Транзакции ACM на Mathematical Software. Издание 23, № 2, 1997, стр 266–294.

[5] Matousek, J. “На L2-несоответствии для Привязанных Полей”. Журнал Сложности. Издание 14, № 4, 1998, стр 527–556.

Введенный в R2008a