sdo.evaluate

Оцените функцию стоимости для выборок

Синтаксис

[y,info] = sdo.evaluate(fcn,params)
[y,info] = sdo.evaluate(fcn,params,param_samples)
[y,info] = sdo.evaluate(___,opts)

Описание

пример

[y,info] = sdo.evaluate(fcn,params) оценивает функцию стоимости, fcn, для выборок пространства параметров, заданного params (объект sdo.ParameterSpace). Программное обеспечение генерирует таблицу выборок с 2Np+1 столбцы Np и строки. Эти выборки сгенерированы на основе спецификаций пространства параметров в params, на его ParameterDistributions, RankCorrelation и свойства Options. Np является количеством параметров, заданных в params. fcn принимает демонстрационные значения и вычисляет целевые значения модели. Образцовой целью могла быть стоимость (цель), ограничение или оценка различия между экспериментальными данными и симуляцией модели. sdo.evaluate применяет fcn к каждой строке таблицы выборок. y является таблицей с одним столбцом для каждого образцового целевого выходного параметра, возвращенного fcn и 2Np+1 строки. Дополнительная информация об оценке возвращена в info.

[y,info] = sdo.evaluate(fcn,params,param_samples) оценивает функцию стоимости для заданной демонстрационной таблицы параметра, param_samples. Для этого синтаксиса можно задать params как объект sdo.ParameterSpace или вектор объектов param.Continuous. y является таблицей с одним столбцом для каждой образцовой цели (стоимость или ограничение) выходной параметр, возвращенный fcn. y содержит столько же строк сколько param_samples.

[y,info] = sdo.evaluate(___,opts) задает опции оценки, которые конфигурируют обработку ошибок оценки, отображение и опции параллельных вычислений. Этот синтаксис может включать любую из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте произвольный объект param.Continuous.

p = param.Continuous('x',1);

Задайте определение пространства параметров для параметра модели.

ps = sdo.ParameterSpace(p);

Оцените функцию стоимости.

[y,info] = sdo.evaluate(@(p) sdoExampleCostFunction(p),ps);
Model evaluated at 3 samples.

Программное обеспечение генерирует три выборки (2Np+1), и оценивает функцию стоимости sdoExampleCostFunction для каждой выборки. Np является количеством параметров (= 1).

Входные параметры

свернуть все

Функция стоимости, которая будет оценена sdo.evaluate, заданным как указатель на функцию.

Функция требует:

  • Один входной параметр, который является вектором объекта param.Continuous.

    Чтобы передать дополнительные входные параметры, используйте анонимную функцию. Например, new_fcn = @(p) fcn(p,arg1,arg2, ...).

  • Один выходной аргумент, который является структурой с одним или несколькими следующих полей:

    • F Значение стоимости (цель) оценено в p. F является 1x1 дважды.

    • Cleq — Значение нелинейных нарушений ограничения неравенства оценено в p.

      Cleq является двойным вектором mx1, где m является количеством нелинейных ограничений неравенства.

    • Ceq — Значение нелинейных ограничительных нарушений равенства оценено в p.

      Значение является двойным вектором rx1, где r является количеством нелинейных ограничений равенства.

    • leq — Значение линейных нарушений ограничения неравенства оценено в p.

      leq является двойным вектором nx1, где n является количеством линейных ограничений неравенства.

    • eq Значение линейных ограничительных нарушений равенства оценено в p.

      eq является двойным вектором sx1 или [], где s является количеством линейных ограничений равенства.

    • Журнал Дополнительная дополнительная информация от функциональной оценки. Если задано, это возвращено в поле Log вывода info.

    Примечание

    Можно использовать тот же указатель на функцию fcn для анализа чувствительности, оптимизации ответа или оценки параметра. Для оптимизации и оценки, решатель ищет значения p, которые минимизируют F в то время как удовлетворяющие ограничения Cleq, Ceq, leq и eq. Для получения дополнительной информации смотрите sdo.optimize и Запись Функция стоимости.

Параметры модели и состояния, заданные как объект sdo.ParameterSpace или вектор объектов param.Continuous. Если вы задаете params, когда вектор param.Continuous возражает, необходимо также задать param_samples.

Выборки параметра, заданные как таблица. param_samples содержит столбцы, которые соответствуют свободным скалярным параметрам и строкам, которые являются выборками этих параметров. Free scalar parameters относится ко всем параметрам, заданным params, свойство Free которого установлено в 1. При определении этого значения свойства, когда 1 указывает, что программное обеспечение может отличаться значение этого параметра для каждой оценки.

Каждое имя столбца должно быть равно имени соответствующего скалярного параметра.

Опции оценки, заданные как объект sdo.EvaluateOptions.

Выходные аргументы

свернуть все

Функция стоимости и ограничительные оценки, возвращенные как таблица.

y является таблицей с одним столбцом для каждой стоимости или ограничения выходной параметр, возвращенный fcn и строками Ns.

Если вы задаете param_samples, Ns равен количеству строк param_samples. В противном случае Ns равен 2Np+1. Np является количеством параметров, заданных в params.

Информация об оценке, возвращенная как структура со следующими полями:

  • Состояние Status — Evaluation для каждой выборки, возвращенной как массив ячеек из символьных векторов.

    Каждая запись массива ячеек является одним из следующих векторов символов:

    • 'success' — Образцовая оценка была успешна

    • 'failure' — Образцовая оценка привела ко всем результатам NaN

    • ошибка Образцовая оценка привела к ошибке

  • Журнал Дополнительная информация об оценке, полученная из поля Log функции стоимости, fcn.

  • Статистика Время, чтобы оценить все выборки, возвращенные как структура со следующими полями:

    • Время начала Время начала оценки, возвращенное как вектор даты с шестью элементами, содержащий текущую дату и время в десятичной форме: [year month day hour minute seconds]

    • Время окончания Время окончания оценки, возвращенное как вектор даты с шестью элементами, содержащий текущую дату и время в десятичной форме: [year month day hour minute seconds]

    Чтобы определить общее время оценки, используйте etime(info.Stats.EndTime,info.Stats.StartTime).

Расширенные возможности

Введенный в R2014a