Оптимизируйте задачу Live Editor с lsqlin Решатель

В этом примере показано, как использовать Оптимизировать задачу Live Editor решить задачу метода наименьших квадратов с ограничениями.

Проблема в этом примере состоит в том, чтобы найти точку на плоском x 1 + 2x2  + 4x3  = 7, который является самым близким началу координат. Самый легкий способ решить эту задачу состоит в том, чтобы минимизировать квадрат расстояния от точки x = (x 1, x 2, x 3) на плоскости до начала координат, который возвращает ту же оптимальную точку как минимизация фактического расстояния. Поскольку квадрат расстояния от произвольной точки (x 1, x 2, x 3) до начала координат x12+x22+x32, можно описать проблему можно следующим образом:

minxf(x)=x12+x22+x32,

подвергните ограничению

x 1 + 2x2  + 4x3  = 7.(1)

Функциональный f (x) является целевой функцией, и x 1 + 2x2  + 4x3  = 7 является ограничением равенства. Более сложные проблемы могут содержать другие ограничения равенства, ограничения неравенства и верхние или нижние границы ограничений.

Настройте и решите задачу Используя, оптимизируют

Настройте проблему с lsqlin решатель в Оптимизировать задаче Live Editor.

  1. Создайте новый live скрипт путем нажатия кнопки New Live Script в разделе File по вкладке Home.

    New Live Script button

  2. Вставьте Оптимизировать задачу Live Editor. Кликните по вкладке Insert и затем, в разделе Code, выберите Task > Optimize.

  3. В разделе Specify problem type задачи выберите Objective > Least squares и Constraints > Linear equality.

    Задача выбирает lsqlin как рекомендуемый решатель.

  4. Получить данные C и d в MATLAB® рабочая область, нажмите кнопку Section Break на вкладке Insert. В новом разделе введите следующий код.

    C = eye(3);
    d = zeros(3,1);
  5. Установите линейную матрицу ограничения равенства и вектор.

    Aeq = [1 2 4];
    beq = 7;
  6. Запустите раздел путем нажатия Ctrl+Enter. Это помещает переменные в рабочую область.

  7. В разделе Select problem data задачи, набор записи в их соответствующие значения.

    Variables C, d, Aeq, and beq are selected, and x0 is not

  8. Запустите решатель путем нажатия Ctrl+Enter. Просмотрите выходное сообщение.

    Exit message reports minimum found satisfying constraints

  9. Чтобы найти решение, посмотрите во главе задачи.

    Returned variables are solution and objectiveValue

    Решатель возвращает переменные solution и objectiveValue к рабочему пространству MATLAB.

  10. Вставьте разрыв раздела ниже задачи. Поместите эти линии в новый раздел.

    disp(solution)
    disp(objectiveValue)
  11. Запустите раздел путем нажатия Ctrl+Enter.

    solution = [1/3, 2/3, 4/3]. objective = 7/3.

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

|

Похожие темы