Матричные аргументы

Решатели 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 имеет элементы, или решатель будет ошибка.

Смотрите также

Похожие темы