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

Решатели Optimization Toolbox™ принимают векторы для многих аргументов, таких как начальная точка x0, нижние границы lb, и верхние границы ub. Они также принимают матрицы для этих аргументов, где матрица означает массив любого размера. Когда аргументы решателя являются, естественно, массивами, а не векторами, не стесняйтесь предоставлять аргументы как массивы.

Вот как решатели обрабатывают матричные аргументы.

  • Внутренне решатели преобразуют матричные аргументы в векторы перед обработкой. Для примера, x0 становится x0(:). Объяснение этого синтаксиса смотрите в A(:) вход в colon, или раздел «Индексация с одним индексом» в разделе «Индексация массивов».

  • Для выхода решатели изменяют форму решения x того же размера, что и входной x0.

  • Когда x0 является матрицей, решатели проходят x как матрица того же размера, что и x0 как к целевой функции, так и к любой нелинейной ограничительной функции.

  • Однако линейные ограничения берут x в векторной форме, x(:). Другими словами, линейное ограничение вида

    A*x ≤ b или Aeq*x = beq

    принимает x как вектор, а не как матрица. Убедитесь, что ваша матрица A или Aeq имеет одинаковое число столбцов как x0 имеет элементы, или решатель будет ошибкой.

См. также

Похожие темы