Решатели Optimization Toolbox™ принимают векторы для многих аргументов, таких как начальная точка x0
, нижние границы lb
и верхние границы ub
. Они также принимают матрицы для этих аргументов, где матрица означает массив любого размера. Когда ваши аргументы решателя будут естественно массивами, не векторами, не стесняйтесь обеспечивать аргументы как массивы.
Вот то, как решатели обрабатывают матричные аргументы.
Внутренне, решатели преобразовывают матричные аргументы в векторы перед обработкой. Например, x0
становится x0(:)
. Для объяснения этого синтаксиса смотрите запись A(:)
в colon
или раздел "Indexing with a Single Index" Индексации массива (MATLAB).
Для вывода решатели изменяют решение x
к тому же размеру как вход x0
.
Когда x0
является матрицей, решатели передают x
как матрицу, одного размера как x0
и к целевой функции и к любой нелинейной ограничительной функции.
Линейные Ограничения, тем не менее, берут x
в векторной форме, x(:)
. Другими словами, линейное ограничение формы
A*x ≤ b
или Aeq*x = beq
берет x
в качестве вектора, не матрицу. Гарантируйте, что ваш матричный A
или Aeq
имеют одинаковое число столбцов, как x0
имеет элементы, или решатель будет ошибка.