Все алгоритмы |
Algorithm | Выберите между 'trust-region-dogleg' (по умолчанию), 'trust-region' , и 'levenberg-marquardt' . The Algorithm опция задаёт выбор, для какого алгоритма использовать. Это только выбор, потому что для алгоритма доверительной области нелинейная система уравнений не может быть недостаточно определена; то есть количество уравнений (количество элементов F возвращается по fun ) должно быть не менее длины x . Точно так же для алгоритма доверительной области-резкого искривления количество уравнений должно быть таким же, как и длина x . fsolve использует алгоритм Левенберга-Марквардта, когда выбранный алгоритм недоступен. Для получения дополнительной информации о выборе алгоритма смотрите Выбор алгоритма. Чтобы задать некоторые опции алгоритма, используя optimset вместо optimoptions : Algorithm - Установите алгоритм равным 'trust-region-reflective' вместо 'trust-region' .
InitDamping - Установите начальный параметр Левенберга-Марквардта λ путем установки Algorithm в массив ячеек, такой как {'levenberg-marquardt',.005} .
|
CheckGradients | Сравните поставляемые пользователем производные (градиенты цели или ограничения) с конечными дифференцирующими производными. Выбор следующий true или значение по умолчанию false .
Для optimset , имя DerivativeCheck и значения 'on' или 'off' . См. «Текущие и устаревшие имена опций». |
Диагностика | Отобразите диагностическую информацию о функции, которая будет минимизирована или решена. Выбор следующий 'on' или значение по умолчанию 'off' . |
DiffMaxChange | Максимальное изменение переменных для градиентов конечных различий (a положительной скалярной величины). Значение по умолчанию является Inf . |
DiffMinChange | Минимальное изменение переменных для градиентов с конечной разностью (a положительной скалярной величины). Значение по умолчанию является 0 . |
Display | Level of display (см. Итеративное отображение):
'off' или 'none' не отображает выход.
'iter' отображает выход при каждой итерации и выдает выходное сообщение по умолчанию.
'iter-detailed' отображает выход при каждой итерации и выдает техническое выходное сообщение.
'final' (по умолчанию) отображает только окончательный выход и выдает выходное сообщение по умолчанию.
'final-detailed' отображает только окончательный выход и выдает техническое выходное сообщение.
|
FiniteDifferenceStepSize | Скаляр или векторный коэффициент размера для конечных различий. Когда вы задаете FiniteDifferenceStepSize в вектор v , прямые конечные различия delta являются delta = v.*sign′(x).*max(abs(x),TypicalX);
где sign′(x) = sign(x) кроме sign′(0) = 1 . Центральные конечные различияdelta = v.*max(abs(x),TypicalX);
Скалярные FiniteDifferenceStepSize расширяется до вектора. Значение по умолчанию является sqrt(eps) для прямых конечных различий и eps^(1/3) для центральных конечных различий.
Для optimset , имя FinDiffRelStep . См. «Текущие и устаревшие имена опций». |
FiniteDifferenceType | Конечные различия, используемые для оценки градиентов, либо 'forward' (по умолчанию), или 'central' (с центром). 'central' принимает в два раза больше вычислений функции, но должен быть более точным. Алгоритм осторожен, чтобы подчиниться границам при оценке обоих типов конечных различий. Так, например, это может занять различие назад, а не вперед, чтобы избежать оценки в точке вне границ.
Для optimset , имя FinDiffType . См. «Текущие и устаревшие имена опций». |
FunctionTolerance | Отклонение завершения функции от значения, a положительной скалярной величины. Значение по умолчанию является 1e-6 . См. «Допуски и критерий остановки».
Для optimset , имя TolFun . См. «Текущие и устаревшие имена опций». |
FunValCheck | Проверьте, действительны ли значения целевой функции. 'on' отображает ошибку, когда целевая функция возвращает значение, которое complex , Inf , или NaN . Значение по умолчанию, 'off' , не отображает ошибок. |
MaxFunctionEvaluations | Максимально допустимое количество вычислений функции, положительное целое число. Значение по умолчанию является 100*numberOfVariables . См. Допуски и критерий остановки и итерации и счетчики функций.
Для optimset , имя MaxFunEvals . См. «Текущие и устаревшие имена опций». |
MaxIterations | Максимально допустимое количество итераций, положительное целое число. Значение по умолчанию является 400 . См. Допуски и критерий остановки и итерации и счетчики функций.
Для optimset , имя MaxIter . См. «Текущие и устаревшие имена опций». |
OptimalityTolerance | Допуск завершения по оптимальности первого порядка (a положительной скалярной величины). Значение по умолчанию является 1e-6 . См. «Мера оптимальности первого порядка». Внутренне, 'levenberg-marquardt' алгоритм использует допуск оптимальности (критерий остановки) 1e-4 время FunctionTolerance и не использует OptimalityTolerance . |
OutputFcn | Задайте одну или несколько пользовательских функций, которые вызываются функциями оптимизации при каждой итерации. Передайте указатель на функцию или cell-массив указателей на функцию. Значением по умолчанию является none ([] ). Смотрите Выходные функции и Синтаксис функции построения графика. |
PlotFcn | Строит графики различных показателей прогресса во время выполнения алгоритма; выберите из предопределенных графиков или напишите свои собственные. Передайте встроенное имя функции построения графика, указатель на функцию или массив ячеек со встроенными именами функций построения графика или указателями на функцию. Для пользовательских функций построения графика передайте указатели на функцию. Значением по умолчанию является none ([] ):
'optimplotx' строит графики текущей точки.
'optimplotfunccount' строит график счетчика функций.
'optimplotfval' строит график значения функции.
'optimplotstepsize' строит графики размера шага.
'optimplotfirstorderopt' строит графики меры оптимальности первого порядка.
Пользовательские функции построения графика используют тот же синтаксис, что и выходные функции. Смотрите Выходные функции для Optimization Toolbox™ и синтаксиса выходной функции и функции построения графика. Для optimset , имя PlotFcns . См. «Текущие и устаревшие имена опций». |
SpecifyObjectiveGradient | Если true , fsolve использует определяемый пользователем якобиан (заданный в fun ), или якобианскую информацию (при использовании JacobianMultiplyFcn ), для целевой функции. Если false (по умолчанию), fsolve аппроксимирует якобиан, используя конечные различия.
Для optimset , имя Jacobian и значения 'on' или 'off' . См. «Текущие и устаревшие имена опций». |
StepTolerance | Допуск завершения на x , а положительная скалярная величина. Значение по умолчанию является 1e-6 . См. «Допуски и критерий остановки».
Для optimset , имя TolX . См. «Текущие и устаревшие имена опций». |
TypicalX | Типичные x значения. Количество элементов в TypicalX равно количеству элементов в x0 , а начальная точка. Значение по умолчанию ones(numberofvariables,1) . fsolve использует TypicalX для масштабирования конечных различий для оценки градиента. The trust-region-dogleg алгоритм использует TypicalX как диагональные условия масштабирующей матрицы. |
UseParallel | Когда true , fsolve оценивает градиенты параллельно. Отключите, установив значение по умолчанию, false . См. Параллельные вычисления. |
Алгоритм доверительной области |
JacobianMultiplyFcn | Функция умножения якобиана, заданная как указатель на функцию. Для крупномасштабных структурированных задач эта функция вычисляет матричный продукт Якобия J*Y , J'*Y , или J'*(J*Y) не образуя фактически J . Функция имеет вид где Jinfo содержит матрицу, используемую для вычисления J*Y (или J'*Y , или J'*(J*Y) ). Первый аргумент Jinfo должен совпадать со вторым аргументом, возвращаемым целевой функцией fun , для примера, в Y - матрица, которая имеет одинаковое число строк, так как в задаче есть размерности. flag определяет, какой продукт вычислить:
В каждом случае J не формируется явным образом. fsolve использует Jinfo для вычисления средства предварительной подготовки. Смотрите Передачу Дополнительных Параметров для получения информации о том, как задать значения для любых дополнительных параметров jmfun потребности. Примечание 'SpecifyObjectiveGradient' должно быть установлено в true для fsolve для прохождения Jinfo от fun на jmfun .
Смотрите Минимизацию с Плотным Структурированным Гессианом, Линейными Равенствами для аналогичного примера. Для optimset , имя JacobMult . См. «Текущие и устаревшие имена опций». |
JacobPattern | Разреженность шаблона якобиана для конечного дифференцирования. Задайте JacobPattern(i,j) = 1 когда fun(i) зависит от x(j) . В противном случае задайте JacobPattern(i,j) = 0 . Другими словами, JacobPattern(i,j) = 1 когда можно ∂ fun(i) / <reservedrangesplaceholder0> ≠ 0. Использование JacobPattern когда неудобно вычислять матрицу Якобия J в fun хотя можно определить (скажем, по осмотру), когда fun(i) зависит от x(j) . fsolve может аппроксимировать J через разреженные конечные различия, когда вы даете JacobPattern . В худшем случае, если структура неизвестна, не устанавливайте JacobPattern . Поведение по умолчанию как будто JacobPattern - плотная матрица таковых. Тогда fsolve вычисляет полное приближение конечной разности в каждой итерации. Это может быть очень дорого для больших задач, поэтому обычно лучше определить структуру разреженности. |
MaxPCGIter | Максимальное количество итераций PCG (предварительно обусловленный сопряженный градиент), a положительной скалярной величины. Значение по умолчанию является max(1,floor(numberOfVariables/2)) . Для получения дополнительной информации см. Алгоритмы решения уравнений. |
PrecondBandWidth | Верхняя шумовая полоса предкондиционера для PCG, неотрицательного целого числа. Значение по умолчанию PrecondBandWidth является Inf , что означает, что используется прямая факторизация (Холецкий), а не сопряженные градиенты (CG). Прямая факторизация является в вычислительном отношении более дорогой, чем CG, но производит более качественный шаг к решению. Задайте PrecondBandWidth на 0 для диагонального предварительного преобразования (верхняя полоса пропускания 0). Для некоторых задач промежуточная полоса пропускания уменьшает количество итераций PCG. |
SubproblemAlgorithm | Определяет, как вычисляется шаг итерации. Значение по умолчанию, 'factorization' , делает более медленный, но более точный шаг, чем 'cg' . См. Алгоритм доверительной области. |
TolPCG | Допуск завершения на итерации PCG, a положительной скалярной величины. Значение по умолчанию является 0.1 . |
Алгоритм Левенберга-Марквардта |
InitDamping | Начальное значение параметра Левенберга-Марквардта, a положительной скалярной величины. По умолчанию это 1e-2 . Для получения дополнительной информации см. Метод Левенберга-Марквардта. |
ScaleProblem | 'jacobian' иногда может улучшить сходимость плохо масштабируемой задачи. Значение по умолчанию является 'none' .
|