Все алгоритмы |
Algorithm | Выберите между 'trust-region-dogleg' (значение по умолчанию), 'trust-region' , и 'levenberg-marquardt' . Опция Algorithm задает настройку который алгоритм использовать. Это - только настройка, потому что для алгоритма доверительной области, нелинейная система уравнений не может быть недоопределенной; то есть, количество уравнений (число элементов F , возвращенного fun ), должно быть, по крайней мере, столько же сколько длина x . Точно так же для алгоритма доверительного резкого искривления области, количество уравнений должно совпасть с длиной x . fsolve использует алгоритм Levenberg-Marquardt, когда выбранный алгоритм недоступен. Для получения дополнительной информации о выборе алгоритма смотрите Выбор Algorithm. Установить некоторые опции алгоритма с помощью optimset вместо optimoptions : Algorithm — Установите алгоритм на 'trust-region-reflective' вместо 'trust-region' .
InitDamping — Установите начальный параметр Levenberg-Marquardt λ установкой Algorithm к массиву ячеек, такому как {'levenberg-marquardt',.005} .
|
CheckGradients | Сравните предоставленные пользователями производные (градиенты цели или ограничений) к производным конечного дифференцирования. Выбором является true или false по умолчанию.
Для optimset именем является DerivativeCheck , и значениями является 'on' или 'off' . См. Текущие и Устаревшие Таблицы Имени Опции. |
Диагностика | Отобразите диагностическую информацию о функции, которая будет минимизирована или решена. Выбором является 'on' или 'off' по умолчанию. |
DiffMaxChange | Максимальное изменение в переменных для градиентов конечной разности (положительная скалярная величина). Значением по умолчанию является Inf . |
DiffMinChange | Минимальное изменение в переменных для градиентов конечной разности (положительная скалярная величина). Значением по умолчанию является 0 . |
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 | Допуск завершения на значении функции, положительной скалярной величине. Значением по умолчанию является 1e-6 . Смотрите Допуски и Критерий остановки.
Для optimset именем является TolFun . См. Текущие и Устаревшие Таблицы Имени Опции. |
FunValCheck | Проверяйте, допустимы ли значения целевой функции. 'on' отображает ошибку, когда целевая функция возвращает значение, которое является complex , Inf или NaN . Значение по умолчанию, 'off' , не отображает ошибки. |
MaxFunctionEvaluations | Максимальное количество функциональных позволенных оценок, положительное целое число. Значением по умолчанию является 100*numberOfVariables . Смотрите Допуски и Критерий остановки и Итерации и Функциональные количества.
Для optimset именем является MaxFunEvals . См. Текущие и Устаревшие Таблицы Имени Опции. |
MaxIterations | Максимальное количество позволенных итераций, положительное целое число. Значением по умолчанию является 400 . Смотрите Допуски и Критерий остановки и Итерации и Функциональные количества.
Для optimset именем является MaxIter . См. Текущие и Устаревшие Таблицы Имени Опции. |
OptimalityTolerance | Допуск завершения на оптимальности первого порядка (положительная скалярная величина). Значением по умолчанию является 1e-6 . Смотрите Меру по Оптимальности Первого порядка. Внутренне, алгоритм 'levenberg-marquardt' использует допуск оптимальности (останавливающий критерий) времен 1e-4 FunctionTolerance и не использует OptimalityTolerance . |
OutputFcn | Задайте одну или несколько пользовательских функций что оптимизация вызовы функции в каждой итерации. Передайте указатель на функцию или cell-массив указателей на функцию. Значение по умолчанию не ни один ([] ). Смотрите Синтаксис Выходной функции. |
PlotFcn | Строит различные меры прогресса, в то время как алгоритм выполняется; выберите из предопределенных графиков или запишите свое собственное. Передайте встроенное имя функции построения графика, указатель на функцию или массив ячеек встроенных имен функции построения графика или указателей на функцию. Для пользовательских функций построения графика передайте указатели на функцию. Значение по умолчанию не ни один ([] ):
'optimplotx' строит текущую точку.
'optimplotfunccount' строит функциональное количество.
'optimplotfval' строит значение функции.
'optimplotstepsize' строит размер шага.
'optimplotfirstorderopt' строит меру по оптимальности первого порядка.
Для получения информации о записи пользовательской функции построения графика смотрите Синтаксис Функции построения графика. Для 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 для масштабирования конечных разностей для оценки градиента. Алгоритм 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) / ∂ x(j) ≠ 0. Используйте JacobPattern , когда это неудобно, чтобы вычислить якобиевский матричный J в fun , хотя можно определить (скажите контролем), когда fun(i) зависит от x(j) . fsolve может аппроксимировать J через разреженные конечные разности, когда вы даете JacobPattern . В худшем случае, если структура неизвестна, не устанавливают JacobPattern . Поведение по умолчанию состоит в том, как будто JacobPattern является плотной матрицей из единиц. Затем fsolve вычисляет полное приближение конечной разности в каждой итерации. Это может быть очень дорого для больших проблем, таким образом, обычно лучше определить структуру разреженности. |
MaxPCGIter | Максимальное количество PCG (предобусловленный метод сопряженных градиентов) итерации, положительная скалярная величина. Значением по умолчанию является max(1,floor(numberOfVariables/2)) . Для получения дополнительной информации смотрите, что уравнение Решает Алгоритмы. |
PrecondBandWidth | Верхняя пропускная способность предварительного формирователя для PCG, неотрицательного целого числа. PrecondBandWidth по умолчанию является Inf , что означает, что прямая факторизация (Холесский) используется, а не методы сопряженных градиентов (CG). Прямая факторизация является в вычислительном отношении более дорогой, чем CG, но производит лучший качественный шаг к решению. Установите PrecondBandWidth на 0 для предварительного создания условий диагонали (верхняя пропускная способность 0). Для некоторых проблем промежуточная пропускная способность сокращает количество итераций PCG. |
SubproblemAlgorithm | Определяет, как шаг итерации вычисляется. Значение по умолчанию, 'factorization' , делает более медленный, но более точный шаг, чем 'cg' . Смотрите Доверительную область fsolve Алгоритм. |
TolPCG | Допуск завершения на итерации PCG, положительной скалярной величине. Значением по умолчанию является 0.1 . |
Алгоритм Levenberg-Marquardt |
InitDamping | Начальное значение параметра Levenberg-Marquardt, положительной скалярной величины. Значением по умолчанию является 1e-2 . Для получения дополнительной информации см. Метод Levenberg-Marquardt. |
ScaleProblem | 'jacobian' может иногда улучшать сходимость плохо масштабированной проблемы. Значением по умолчанию является 'none' .
|