sdo.evaluate

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

Описание

пример

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

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

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

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

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

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

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

    • eq - Значение нарушений линейного ограничения равенства, оцененное в p.

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

    • Log - Дополнительная необязательная информация от вычисления функции. Если задано, это возвращается в 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 равно 2 Np + 1. Np - количество параметров, заданное в params.

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

  • Status - Статус оценки для каждой выборки, возвращенный как массив ячеек из векторов символов.

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

    • 'success' - Оценка модели прошла успешно

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

    • 'error' - Оценка модели привела к ошибке

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

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

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

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

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

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

Введенный в R2014a