[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
Восемь локальных прогонов решателя нашли четыре решения. 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.