Преобразуйте задачу оптимизации или проблему уравнения к форме решателя
, для любых входных параметров, задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, для нелинейной задачи оптимизации, problem = prob2struct(___,Name,Value)problem = prob2struct(prob,'ObjectiveFunctionName','objfun1') задает тот prob2struct создает файл с именем целевой функции objfun1.m в текущей папке.
Если вы вызываете prob2struct многократно на том же сеансе MATLAB® для нелинейных проблем, используйте ObjectiveFunctionName или EquationFunctionName аргумент и, при необходимости ConstraintFunctionName аргумент. Определение уникальных имен гарантирует, что получившиеся структуры задачи относятся к правильной цели и ограничительным функциям. В противном случае, последующие вызовы prob2struct может заставить сгенерированные нелинейные файлы функции перезаписывать существующие файлы.
Чтобы постараться не вызывать бесконечную рекурсию, не вызывайте prob2struct в цели или ограничительной функции.
При вызове prob2struct параллельно для нелинейных проблем, гарантируйте, что получившаяся цель и ограничительные файлы функции имеют уникальные имена. Выполнение так избегает каждой передачи цикла, пишущего в тот же файл или файлы.
Основанием для структуры задачи является неявное упорядоченное расположение всех переменных задачи в один вектор. Порядок переменных задачи совпадает с порядком Variables свойство в prob. Смотрите OptimizationProblem. Можно также найти порядок при помощи varindex.
Например, предположите, что переменные задачи находятся в этом порядке:
x — 3 2 4 массивами
y — 3 2 массив
В этом случае неявный переменный порядок эквивалентен, если переменной задачи является vars = [x(:);y(:)].
Первые 24 элемента vars эквивалентны x(:), и следующие шесть элементов эквивалентны y(:), для в общей сложности 30 элементов. Нижние и верхние границы соответствуют этому переменному упорядоченному расположению, и каждая линейная матрица ограничений имеет 30 столбцов.
Для проблем с общей нелинейной целью или ограничительными функциями, prob2struct создает файлы функции в текущей папке или в папке, заданной FileLocation. Возвращенный problem структура относится к этим файлам функции.