Реализация fmincon, которая вызывает другую функцию
Прямо сейчас у меня есть код, который моделирует трансформаторную установку (назовем это TP1), который выдает два выхода 'x' и 'y', учитывая два физических измерения 'a' и 'b' в диапазоне коэффициентов трансформации.
Существует несколько различных способов настройки этого завода, поэтому в модели завода есть простые критерии выбора, которые выбирают один параметр среди других, так что ввод и вывод максимизируются. (Таким образом, у меня нет априорных знаний о том, через какие уравнения "a" и "b" пройдут, чтобы получить "x" или "y")
Существует еще один трансформатор (TP2), который выдает выходные данные "x2" и "y2" только для одного физического измерения "c"
Ниже приводится оптимизация, которую я пытаюсь сделать:
Цель: Учитывая установленный TP2, спроектируйте TP1 таким образом, чтобы он минимизировал a+b, а x >= x2 и y>=y2 для заданного диапазона коэффициента трансформации.
Я заблудился о том, как реализовать fmincon (или любой другой метод оптимизации), чтобы выполнить эту задачу, тем более что моя модель TP1 основана на очень численных данных. (Я не знаю, лучше ли config1 или 2 для определенного коэффициента трансформации, прежде чем его коммерчески решить) Я ценю ваш совет заранее.
1 ответ
fmincon
правильный инструмент:
- Ваш неизвестный является 2-элементным вектором
[a; b]
- Вам необходимо указать начальную точку
X0
за[a; b]
- Ваша функция стоимости
FUN
это просто функция, которая возвращаетa+b
- У вас есть два нелинейных ограничения и вам нужно написать функцию для
NONLCON
Ваш NONLCON
функция должна:
- Принять 2-элементный вектор [a; б] в качестве входа
- Оцените свою модель, TP1
- Вернуться за
C
(первое возвращаемое значение) 2-элементный вектор [x-x2; у-у2] - Возврат пуст для второго возвращаемого значения
Ceq
Вы также можете указать верхнюю и нижнюю границы для вашего [a; b]
вектор.