Ограничения линейного неравенства в Matlab - PullRequest
0 голосов
/ 16 октября 2018

Я хочу установить ограничение для радиусов кольцевого сечения трубы, где r_o - r_i> .0025, где r_o и r_i - переменные, каждый из которых представляет собой массив 1x11 внутреннего и внешнего радиусов по длине трубы.Я манипулировал этим, чтобы он был

r_o - r_i - .0025 <= 0 </p>

Как настроить матрицы A и b (для использования в fmincon) длярешить это неравенство?

Я предполагаю, что моя матрица b будет просто вектором столбца с каждым значением -.0025 и длиной, соответствующей количеству переменных r_o (в нашем случае 11), но не знаю, что поставитьв матрице А.

1 Ответ

0 голосов
/ 16 октября 2018

Ограничения в fmincon имеют форму Ax<=b.Любое линейное ограничение неравенства может быть приведено в этой форме.

Вы оптимизируете по всему вектору r_i и r_o верно?В этом случае я бы настроил ваш вектор оптимизации x как что-то вроде x = [r_i, r_o]', то есть вектор длины 22 (столбец), где первые 11 элементов соответствуют r_i, а остальные 11 элементов соответствуют r_o,В этом случае вы можете сопоставить r_i <= r_o - 0.025 с [eye(11), -eye(11)]*x <= -0.0025*ones(11,1), который говорит вам, как должны выглядеть ваши A и b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...