exponenta event banner

Оптимизация задачи Live Editor с помощью lsqlin Решающее устройство

В этом примере показано, как использовать задачу «Оптимизировать интерактивный редактор» для решения проблемы ограниченных наименьших квадратов.

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

minxf (x) = x12 + x22 + x32,

с учетом ограничения

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

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

Настройка и решение проблемы с помощью оптимизации

Настройте проблему с помощью lsqlin решатель в задаче Оптимизировать интерактивный редактор (Optimize Live Editor).

  1. Создайте новый сценарий в реальном времени, нажав кнопку «Создать сценарий в реальном времени» в разделе «Файл» на вкладке «Главная».

    New Live Script button

  2. Вставка задачи «Оптимизировать интерактивный редактор». Перейдите на вкладку Вставка, а затем в разделе Код выберите Задача > Оптимизировать.

  3. В разделе Задание типа задачи выберите Цель > Наименьшие квадраты и ограничения > Линейное равенство.

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

  4. Получение данных C и d в рабочем пространстве MATLAB ® нажмите кнопку «Разрыв сечения» на вкладке «Вставка». В новом разделе введите следующий код.

    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.

См. также

|

Связанные темы