sobolset

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

Описание

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

Создание

Синтаксис

p = sobolset(d)
p = sobolset(d,Name,Value)

Описание

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';

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

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

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

Используйте функцию объекта 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. На каждом 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

Для просмотра документации необходимо авторизоваться на сайте