Задача Optimize Live Editor обеспечивает визуальный интерфейс для fminbnd
, fminsearch
, fzero
, и lsqnonneg
решатели. Чтобы запустить задачу, нажмите кнопку New Live Script. Затем щелкните вкладку Insert и выберите Task > Optimize.
Этот пример показывает, как минимизировать функцию где переменная a = π с помощью задачи Оптимизации Live Editor.
Видео, описывающее подобную задачу оптимизации, смотрите в Как использовать задачу Оптимизации Live Editor.
На вкладке Home, в разделе File, нажмите кнопку New Live Script.
Вставьте задачу Optimize Live Editor. Щелкните вкладку Insert, а затем в разделе Code выберите Task > Optimize.
Для использования при вводе данных о задаче нажмите кнопку Section Break. Новые разделы появляются выше и ниже задачи.
В разделе выше задачи Оптимизации введите следующий код.
a = pi; x0 = [-1 2];
Чтобы поместить эти переменные в рабочую область, нажмите Ctrl + Enter.
В Specify problem type разделе задачи нажмите кнопку Objective > Nonlinear и кнопку Constraints > Unconstrained. Задача показывает, что рекомендуемый решатель fminsearch
.
Примечание
Если у вас есть Optimization Toolbox™, ваш рекомендуемый решатель на этой точке отличается. Выбирать fminsearch
для продолжения работы с примером.
В разделе 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
В Select problem data разделе выберите objectiveFcn
как локальная функция.
В Select problem data разделе под Function inputs выберите Optimization input > optimInput и Fixed input: a > a.
Выберите Initial point (x0) > x0.
В Display progress разделе выберите Objective value для графика.
Чтобы запустить решатель, нажмите кнопку options ⁝ в верхней части окна задачи и выберите Run Section.
Появится следующий график.
Чтобы просмотреть точку решения, смотрите в верхней части задачи Оптимизировать.
The solution
и objectiveValue
переменные возвращаются в рабочую область. Чтобы просмотреть их значения, вставьте пропуск раздела под задачей и введите этот код.
disp(solution) disp(objectiveValue)
Запустите раздел нажатием Ctrl+Enter.
disp(solution)
3.1416 9.8696
disp(objectiveValue)
3.9946e-11
В этом примере показано, как использовать задачу Optimize Live Editor для поиска x точек, где cos (x) = x.
На вкладке Home, в разделе File, нажмите кнопку New Live Script. Введите эти строки кода в live скрипте.
fun = @(x)cos(x) - x; x0 = 0;
Первая линия определяет анонимную функцию fun
, которое принимает значение 0 в точке x где cos (x) = x. Вторая линия определяет начальную точку x0
= 0, где fzero
начинает поиск решения.
Поместите эти переменные в MATLAB® рабочей области путем нажатия клавиши Ctrl+Enter.
Вставьте задачу Optimize Live Editor. Щелкните вкладку Insert, а затем в разделе Code выберите Task > Optimize.
В Specify problem type разделе задачи выберите Solver > fzero.
В Select problem data разделе выберите Objective function > Function handle и затем fun
. Выберите Initial point (x0) > x0.
В разделе «прогресс отображения» выберите Objective value для графика.
Запустите решатель, нажав Ctrl+Enter.
Чтобы увидеть значение решения, вставьте новый раздел под задачей, нажав кнопку Section Break на вкладке Insert. В новом разделе введите solution
и нажмите Ctrl+Enter.
solution
solution = 0.7391
fminsearch
| fzero
| Оптимизировать