Преобразуйте функцию в выражение оптимизации
Когда это возможно, создайте свои целевые или нелинейные функции ограничения с помощью поддерживаемых операций над переменными оптимизации и выражениями вместо 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'.