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

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

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

minxf(x)=x12+x22+x32,

удовлетворяющее ограничению

<reservedrangesplaceholder2> 1       + 2 <reservedrangesplaceholder1> 2 + 4 <reservedrangesplaceholder0> 3 = 7.(1)

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

Настройте и решите задачу используя Optimize

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

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

    New Live Script button

  2. Вставьте задачу Optimize 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.

См. также

|

Похожие темы