Оптимизируйте задачу Live Editor

Какова оптимизировать задача Live Editor?

Оптимизировать задача Live Editor обеспечивает визуальный интерфейс для fminbnd, fminsearch, fzero, и lsqnonneg решатели. Чтобы запустить задачу, нажмите кнопку New Live Script. Затем кликните по вкладке Insert и выберите Task > Optimize.

Optimize Live Editor task.

Минимизируйте нелинейную функцию нескольких переменных

В этом примере показано, как минимизировать функцию f(x,y)=100(yx2)2+(ax)2 где переменная a = π с помощью Оптимизировать задачи Live Editor.

Для видео, описывающего подобную задачу оптимизации, смотрите, Как Использовать Оптимизировать Live Editor Тэска.

  1. На вкладке Home, в разделе File, нажимают кнопку New Live Script.

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

    Insert task Optimize

  3. Для использования во вводе проблемных данных нажмите кнопку Section Break. Новые разделы появляются выше и ниже задачи.

  4. В разделе выше Оптимизировать задачи введите следующий код.

    a = pi;
    x0 = [-1 2];
  5. Чтобы поместить эти переменные в рабочую область, нажмите Ctrl + Enter.

  6. В разделе Specify problem type задачи нажмите кнопку Objective > Nonlinear и кнопку Constraints > Unconstrained. Задача показывает, что рекомендуемый решатель fminsearch.

    Примечание

    Если у вас есть Optimization Toolbox™, ваш рекомендуемый решатель в этой точке отличается. Выбрать fminsearch возобновлять пример.

  7. В разделе Select problem data выберите Objective function > Local function и затем нажмите кнопку New. Функциональный скрипт появляется в новом разделе ниже задачи. Отредактируйте получившийся код, чтобы содержать следующие непрокомментированные линии.

    function f = objectiveFcn(optimInput,a)
    x = optimInput(1);
    y = optimInput(2);
    f = 100*(y - x^2)^2 + (a - x)^2;
    end
  8. В разделе Select problem data выберите objectiveFcn как локальная функция.

  9. В разделе Select problem data, под Function inputs, выбирают Optimization input > optimInput и Fixed input: a > a.

    Local function objectiveFcn, optimization input optimInput, fixed input a

  10. Выберите Initial point (x0) > x0.

  11. В разделе Display progress выберите Objective value для графика.

  12. Чтобы запустить решатель, кликните по кнопке опций в правом верхнем из окна задачи и выберите Run Section.

    Run Section

    Следующий график появляется.

    Plot showing values decreasing from 120 to 4e-11 in fewer than 150 iterations

  13. Чтобы просмотреть точку решения, посмотрите во главе Оптимизировать задачи.

    Variables solution and objectiveValue are returned

    Решение и objectiveValue переменные возвращены в рабочую область. Чтобы просмотреть их значения, вставьте разрыв раздела ниже задачи и введите этот код.

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

    disp(solution)
        3.1416    9.8696
    disp(objectiveValue)
       3.9946e-11

Решите скалярное уравнение

В этом примере показано, как использовать Оптимизировать задачу Live Editor найти точку x где because(x), = x.

  1. На вкладке Home, в разделе File, нажимают кнопку New Live Script. Введите эти строки кода в live скрипт.

    fun = @(x)cos(x) - x;
    x0 = 0;

    Первая линия задает анонимную функцию fun, который принимает значение 0 в точке x где because(x), = x. Вторая линия задает начальную точку x0 = 0, где fzero начинает его поиск решения.

  2. Поместите эти переменные в рабочую область MATLAB® путем нажатия Ctrl+Enter.

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

  4. В разделе Specify problem type задачи выберите Solver > fzero.

  5. В разделе Select problem data выберите Objective function > Function handle и затем выберите fun. Выберите Initial point (x0) > x0.

    fzero with choices made

  6. В разделе прогресса Отображения выберите Objective value для графика.

    Plot function is Objective value.

  7. Запустите решатель путем нажатия Ctrl+Enter.

    Plot of solution process, seven iterations with final five all nearly zero.

  8. Чтобы видеть значение решения, вставьте новый раздел ниже задачи путем нажатия кнопки Section Break на вкладке Insert. В новом разделе введите solution и нажмите Ctrl+Enter.

    solution
    solution = 0.7391

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

| |

Похожие темы