sdo.evaluate

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

Описание

пример

[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 таблица с одним столбцом для каждой цели модели (стоимость или ограничение) выходной параметр, возвращенный fcnY содержит столько же строк сколько 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 — Значение стоимости (цель) оценено в pF 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 равен 2Np+1. Np является количеством параметров, заданных в params.

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

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

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

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