[x,fval] = run(___) возвращает значение целевой функции в x, лучшая найденная точка, с использованием любого из аргументов в предыдущих синтаксисах. Для lsqcurvefit и lsqnonlin локальные решатели, fval содержит квадратную норму невязки.
Создайте задачу оптимизации, которая имеет несколько локальных минимумов и попытайтесь найти глобальный минимум с помощью GlobalSearch. Цель состоит в том, чтобы решить проблему с шестью горбами (см. «Запуск решателя»).
rng default% For reproducibility
gs = GlobalSearch;
sixmin = @(x)(4*x(1)^2 - 2.1*x(1)^4 + x(1)^6/3 ...
+ x(1)*x(2) - 4*x(2)^2 + 4*x(2)^4);
problem = createOptimProblem('fmincon','x0',[-1,2],...'objective',sixmin,'lb',[-3,-3],'ub',[3,3]);
x = run(gs,problem)
GlobalSearch stopped because it analyzed all the trial points.
All 8 local solver runs converged with a positive local solver exit flag.
x = 1×2
-0.0898 0.7127
Вы можете запросить значение целевой функции в x когда вы звоните run при помощи следующего синтаксиса:
[x,fval] = run(gs,problem)
Однако, если вы пренебрегли запросом fval, вы все еще можете вычислить значение целевой функции в x.
Создайте задачу оптимизации, которая имеет несколько локальных минимумов и попытайтесь найти глобальный минимум с помощью GlobalSearch. Цель состоит в том, чтобы решить проблему с шестью горбами (см. «Запуск решателя»).
GlobalSearch stopped because it analyzed all the trial points.
All 8 local solver runs converged with a positive local solver exit flag.
Чтобы понять, что GlobalSearch сделал, чтобы решить эту проблему, изучить output структура и solutions объект.
disp(output)
funcCount: 2245
localSolverTotal: 8
localSolverSuccess: 8
localSolverIncomplete: 0
localSolverNoSolution: 0
message: 'GlobalSearch stopped because it analyzed all the trial points....'
GlobalSearch оценил целевую функцию 2261 раз.
GlobalSearch пробежал fmincon начиная с восьми различных точек.
Все fmincon успешно выполняется в локальном решении.
disp(solutions)
1x4 GlobalOptimSolution array with properties:
X
Fval
Exitflag
Output
X0
arrayfun(@(x)x.Output.funcCount,solutions)
ans = 1×4
31 34 40 3
Восемь локальных запусков решателя нашли четыре решения. The funcCount выход показывает, что fmincon потребовалось не более 40 вычисления функции, чтобы достичь каждого из четырех решений. Выходные выходы не показывают, сколько функций вычисляет четыре из fmincon выполняются. Большинство вычислений функции 2261, по-видимому, предназначены для GlobalSearch для оценки пробных точек, а не для fmincon чтобы бежать, начиная с этих точек.
Пример: problem = createOptimProblem('fmincon','objective',fun,'x0',x0,'lb',lb)
Типы данных: struct
k - Количество начальных точек положительное целое число
Количество начальных точек в виде положительного целого числа. MultiStart генерирует k - 1 начальные точки используют тот же алгоритм, что и для RandomStartPointSet объект. MultiStart также использует x0 точка от problem структура.
Пример: 50
Типы данных: double
startpts - Стартовые точки для MultiStart CustomStartPointSet| объекта RandomStartPointSet| объекта массива ячеек из таких объектов
Лучшая найденная точка, возвращенная как реальный массив. Лучшая точка - это точка с самым низким значением целевой функции.
fval - Встретилось самое низкое значение целевой функции действительный скаляр
Встретилось самое низкое значение целевой функции, возвращенное как действительный скаляр. Для lsqcurvefit и lsqnonlin, целевой функцией является сумма квадратов, также известная как квадратная норма невязки.
exitflag - сводные данные выходных условий целое число
Выход из сводных данных условий, возвращается как целое число.
2
Найден по крайней мере один локальный минимум. Некоторые запуски локального решателя сходились.
1
Найден по крайней мере один локальный минимум. Все запуски локального решателя сходились.
0
Локальный минимум не найден. Локальный решатель вызывается хотя бы один раз, и, по крайней мере, один локальный решатель превысил MaxIterations или MaxFunctionEvaluations допуски.
-1
Один или несколько локальных решателей запусков остановлены локальным выходом или функцией построения графика решателя.
-2
Допустимый локальный минимум не найден.
-5
MaxTime превышен предел.
-8
Решение не найдено. У всех запуски был локальный выходной флаг решателя -2 или меньше, не все равны -2.
-10
Отказы в работе пользовательских функций.
output - Детали процесса решения структура
Подробные данные процесса решения, возвращенные как структура со следующими полями.
Область
Значение
funcCount
Количество вычислений функции.
localSolverIncomplete
Количество локальных решателей, выполняемых с 0 выходной флаг.
localSolverNoSolution
Количество запусков локального решателя с отрицательным выходным флагом.
localSolverSuccess
Количество запусков локального решателя с положительным выходным флагом.
localSolverTotal
Общее количество запусков локального решателя.
message
Выходное сообщение.
solutions - Отдельные локальные решения вектор GlobalOptimSolution объекты
Отдельные локальные решения, возвращенные как вектор GlobalOptimSolution объекты.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.