Преобразуйте функцию в выражение оптимизации
Когда это возможно, создайте свои целевые или нелинейные функции ограничения с помощью поддерживаемых операций над переменными оптимизации и выражениями вместо fcn2optimexpr
. Это имеет следующие преимущества:
solve
включает градиенты, вычисленные автоматической дифференциацией. Смотрите эффект автоматической дифференциации в основанной на проблеме оптимизации.
solve
имеет более широкий выбор доступных решателей. При использовании fcn2optimexpr
, solve
использует только fmincon
или fminunc
.
Для получения дополнительной информации смотрите Преобразование нелинейной функции в выражение оптимизации и Поддерживаемые операции над переменными оптимизации и выражениями.
Чтобы найти выходной размер каждого возвращенного выражения, если вы не задаете OutputSize
, fcn2optimexpr
вычисляет функцию в следующей точке для каждого элемента переменных задачи.
Переменные характеристики | Точка оценки |
---|---|
Конечная верхняя граница ub и конечная нижняя граница lb | (lb + ub)/2 + ((ub - lb)/2)*eps |
Конечная нижняя граница и отсутствие верхней границы | lb + max(1,abs(lb))*eps |
Конечная верхняя граница и отсутствие нижней границы | ub - max(1,abs(ub))*eps |
Никаких границ | 1 + eps |
Переменная задается как целое число | floor из точки, заданной ранее |
Точка оценки может привести к ошибке в вычислении функции. Чтобы избежать этой ошибки, задайте 'OutputSize
'.