fminunc

Найдите минимум неограниченной многомерной функции

Решатель нелинейного программирования.

Находит минимум проблемы заданным

minxf(x)

где f (x) является функцией, которая возвращает скаляр.

x является вектором или матрицей; смотрите Матричные аргументы.

Синтаксис

x = fminunc(fun,x0)
x = fminunc(fun,x0,options)
x = fminunc(problem)
[x,fval] = fminunc(___)
[x,fval,exitflag,output] = fminunc(___)
[x,fval,exitflag,output,grad,hessian] = fminunc(___)

Описание

пример

x = fminunc(fun,x0) запускает в точке x0 и пытается найти локальный минимальный x функции описанным в fun. Точка x0 может быть скаляром, вектором или матрицей.

Примечание

Передача Дополнительных Параметров объясняет, как передать дополнительные параметры целевой функции и нелинейным ограничительным функциям при необходимости.

fminunc для нелинейных проблем без ограничений. Если ваша проблема имеет ограничения, обычно используйте fmincon. См. Таблицу решений Оптимизации.

пример

x = fminunc(fun,x0,options) минимизирует fun с опциями оптимизации, заданными в options. Используйте optimoptions, чтобы установить эти опции.

пример

x = fminunc(problem) находит минимум для problem, где problem является структурой, описанной во Входных параметрах. Создайте структуру problem путем экспорта проблемы из приложения Оптимизации, как описано в Экспорте работы.

пример

[x,fval] = fminunc(___), для любого синтаксиса, возвращает значение целевой функции fun в решении x.

пример

[x,fval,exitflag,output] = fminunc(___) дополнительно возвращает значение exitflag, который описывает выходное условие fminunc и структуру output с информацией о процессе оптимизации.

[x,fval,exitflag,output,grad,hessian] = fminunc(___) дополнительно возвращается:

  • grad — Градиент fun в решении x.

  • hessian — Гессиан fun в решении x. См. fminunc Гессиан.

Примеры

свернуть все

Минимизируйте функцию f(x)=3x12+2x1x2+x224x1+5x2.

Запишите анонимную функцию, которая вычисляет цель.

fun = @(x)3*x(1)^2 + 2*x(1)*x(2) + x(2)^2 - 4*x(1) + 5*x(2);

Вызовите fminunc, чтобы найти минимум fun около [1,1].

x0 = [1,1];
[x,fval] = fminunc(fun,x0);

После нескольких итераций fminunc возвращает решение, x и значение функции в x, fval.

x,fval
x =

    2.2500   -4.7500


fval =

  -16.3750

fminunc может быть быстрее и более надежным, когда вы обеспечиваете производные.

Запишите целевую функцию, которая возвращает градиент, а также значение функции. Используйте форму conditionalized, описанную во Включении Градиентов и Гессианов. Целевая функция является функцией Розенброка,

f(x)=100(x2x12)2+(1x1)2,

который имеет градиент

f(x)=[400(x2x12)x12(1x1)200(x2x12)].

function [f,g] = rosenbrockwithgrad(x)
% Calculate objective f
f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;

if nargout > 1 % gradient required
    g = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));
        200*(x(2)-x(1)^2)];
end

Сохраните этот код как файл на вашем пути MATLAB®, названном rosenbrockwithgrad.m.

Создайте опции, чтобы использовать градиент целевой функции. Кроме того, установите алгоритм на 'trust-region'.

options = optimoptions('fminunc','Algorithm','trust-region','SpecifyObjectiveGradient',true);

Установите начальную точку на [-1,2]. Затем вызовите fminunc.

x0 = [-1,2];
fun = @rosenbrockwithgrad;
x = fminunc(fun,x0,options)
Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.

<stopping criteria details>


x =

    1.0000    1.0000

Решите ту же проблему как в Предоставлении Градиент с помощью структуры задачи вместо отдельных аргументов.

Запишите целевую функцию, которая возвращает градиент, а также значение функции. Используйте форму conditionalized, описанную во Включении Градиентов и Гессианов. Целевая функция является функцией Розенброка,

f(x)=100(x2x12)2+(1x1)2,

который имеет градиент

f(x)=[400(x2x12)x12(1x1)200(x2x12)].

function [f,g] = rosenbrockwithgrad(x)
% Calculate objective f
f = 100*(x(2) - x(1)^2)^2 + (1-x(1))^2;

if nargout > 1 % gradient required
    g = [-400*(x(2)-x(1)^2)*x(1)-2*(1-x(1));
        200*(x(2)-x(1)^2)];
end

Сохраните этот код как файл на вашем пути MATLAB, названном rosenbrockwithgrad.m.

Создайте опции, чтобы использовать градиент целевой функции. Кроме того, установите алгоритм на 'trust-region'.

options = optimoptions('fminunc','Algorithm','trust-region','SpecifyObjectiveGradient',true);

Создайте структуру задачи включая начальную точку x0 = [-1,2].

problem.options = options;
problem.x0 = [-1,2];
problem.objective = @rosenbrockwithgrad;
problem.solver = 'fminunc';

Решите проблему.

x = fminunc(problem)
Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.

<stopping criteria details>


x =

    1.0000    1.0000

Найдите и местоположение минимума нелинейной функции и значение функции в том минимуме.

Целевая функция

f(x)=x(1)ex22+x22/20.

fun = @(x)x(1)*exp(-(x(1)^2 + x(2)^2)) + (x(1)^2 + x(2)^2)/20;

Найдите местоположение и значение целевой функции минимизатора, запускающегося в x0 = [1,2].

x0 = [1,2];
[x,fval] = fminunc(fun,x0)
Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.

<stopping criteria details>


x =

   -0.6691    0.0000


fval =

   -0.4052

Выберите опции fminunc и выходные параметры, чтобы исследовать процесс решения.

Установите опции получать итеративное отображение и использовать алгоритм 'quasi-newton'.

options = optimoptions(@fminunc,'Display','iter','Algorithm','quasi-newton');

Целевая функция

f(x)=x(1)e-x22+x22/20.

fun = @(x)x(1)*exp(-(x(1)^2 + x(2)^2)) + (x(1)^2 + x(2)^2)/20;

Запустите минимизацию в x0 = [1,2] и получите выходные параметры, которые позволяют вам исследовать качество решения и процесс.

x0 = [1,2];
[x,fval,exitflag,output] = fminunc(fun,x0,options)
                                                        First-order 
 Iteration  Func-count       f(x)        Step-size       optimality
     0           3         0.256738                         0.173
     1           6         0.222149              1          0.131  
     2           9          0.15717              1          0.158  
     3          18        -0.227902       0.438133          0.386  
     4          21        -0.299271              1           0.46  
     5          30        -0.404028       0.102071         0.0458  
     6          33        -0.404868              1         0.0296  
     7          36        -0.405236              1        0.00119  
     8          39        -0.405237              1       0.000252  
     9          42        -0.405237              1       7.97e-07  

Local minimum found.

Optimization completed because the size of the gradient is less than
the value of the optimality tolerance.
x = 1×2

   -0.6691    0.0000

fval = -0.4052
exitflag = 1
output = struct with fields:
       iterations: 9
        funcCount: 42
         stepsize: 2.9343e-04
     lssteplength: 1
    firstorderopt: 7.9721e-07
        algorithm: 'quasi-newton'
          message: '...'

  • Выходной флаг 1 показывает, что решение является локальным оптимумом.

  • Структура output показывает количество итераций, количество функциональных оценок и другую информацию.

  • Итеративное отображение также показывает количество итераций и функциональных оценок.

Входные параметры

свернуть все

Функция, чтобы минимизировать, заданный как указатель на функцию или имя функции. fun является функцией, которая принимает вектор или массив x и возвращает действительный скалярный f, целевая функция, выполненная в x.

Задайте fun как указатель на функцию для файла:

x = fminunc(@myfun,x0)

где myfun является функция MATLAB такой как

function f = myfun(x)
f = ...            % Compute function value at x

Можно также задать fun как указатель на функцию для анонимной функции:

x = fminunc(@(x)norm(x)^2,x0);

Если можно вычислить градиент fun, и опция SpecifyObjectiveGradient установлена в true, как установлено

options = optimoptions('fminunc','SpecifyObjectiveGradient',true)
затем fun должен возвратить вектор градиента g(x) во втором выходном аргументе.

Если можно также вычислить матрицу Гессиана, и опция HessianFcn установлена в 'objective' через   options = optimoptions('fminunc','HessianFcn','objective'), и опция Algorithm установлена в 'trust-region', fun должен возвратить значение Гессиана H(x), симметрическая матрица, в третьем выходном аргументе. fun может дать разреженный Гессиан. Смотрите Гессиан для fminunc доверительной области или области доверия fmincon отражающие алгоритмы для деталей.

Алгоритм trust-region позволяет, вы, чтобы предоставить Гессиан умножаете функцию. Эта функция дает результат Векторного произведения времен гессиана, не вычисляя Гессиан непосредственно. Это может сохранить память. Смотрите, что Гессиан Умножает Функцию.

Пример: fun = @(x)sin(x(1))*cos(x(2))

Типы данных: char | function_handle | string

Начальная точка, заданная как вектор действительных чисел или действительный массив. Решатели используют число элементов в x0 и размере x0, чтобы определить номер и размер переменных, которые принимает fun.

Пример: x0 = [1,2,3,4]

Типы данных: double

Опции оптимизации, заданные как вывод optimoptions или структуры, такие как optimset, возвращаются.

Некоторые опции применяются ко всем алгоритмам, и другие важны для конкретных алгоритмов. Дополнительную информацию см. в Ссылке Опций Оптимизации.

Некоторые опции отсутствуют в отображении optimoptions. Эти опции появляются курсивом в следующей таблице. Для получения дополнительной информации, Опции вида на море.

Все алгоритмы

Algorithm

Выберите алгоритм fminunc. Выбором является 'quasi-newton' (значение по умолчанию) или 'trust-region'.

Алгоритм 'trust-region' требует, чтобы вы обеспечили градиент (см. описание fun), или иначе fminunc использует алгоритм 'quasi-newton'. Для получения информации о выборе алгоритма смотрите Выбор Algorithm.

CheckGradients

Сравните предоставленные пользователями производные (градиент цели) к производным конечного дифференцирования. Выбором является false (значение по умолчанию) или true.

Для optimset именем является DerivativeCheck, и значениями является 'on' или 'off'. См. Текущие и Устаревшие Таблицы Имени Опции.

Диагностика

Отобразите диагностическую информацию о функции, которая будет минимизирована или решена. Выбором является 'off' (значение по умолчанию) или 'on'.

DiffMaxChange

Максимальное изменение в переменных для градиентов конечной разности (положительная скалярная величина). Значением по умолчанию является Inf.

DiffMinChange

Минимальное изменение в переменных для градиентов конечной разности (положительная скалярная величина). Значением по умолчанию является 0.

Display

Уровень отображения (см. Итеративное Отображение):

  • 'off' или 'none' не отображают вывода.

  • 'iter' отображает вывод в каждой итерации и дает выходное сообщение по умолчанию.

  • 'iter-detailed' отображает вывод в каждой итерации и дает техническое выходное сообщение.

  • 'notify' отображает вывод, только если функция не сходится и дает выходное сообщение по умолчанию.

  • 'notify-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) для центральных конечных разностей.

Алгоритм доверительной области использует FiniteDifferenceStepSize только, когда CheckGradients установлен в true.

Для optimset именем является FinDiffRelStep. См. Текущие и Устаревшие Таблицы Имени Опции.

FiniteDifferenceType

Конечными разностями, используемыми, чтобы оценить градиенты, является любой 'forward' (значение по умолчанию), или (сосредоточенный) 'central'. 'central' берет вдвое больше функциональных оценок, но должен быть более точным. Алгоритм доверительной области использует FiniteDifferenceType только, когда CheckGradients установлен в true.

Для optimset именем является FinDiffType. См. Текущие и Устаревшие Таблицы Имени Опции.

FunValCheck

Проверяйте, допустимы ли значения целевой функции. Настройка по умолчанию, 'off', не выполняет проверку. Установка 'on' отображает ошибку, когда целевая функция возвращает значение, которое является complex, Inf или NaN.

MaxFunctionEvaluations

Максимальное количество функциональных позволенных оценок, положительное целое число. Значением по умолчанию является 100*numberOfVariables. Смотрите Допуски и Критерий остановки и Итерации и Функциональные количества.

Для optimset именем является MaxFunEvals. См. Текущие и Устаревшие Таблицы Имени Опции.

MaxIterations

Максимальное количество позволенных итераций, положительное целое число. Значением по умолчанию является 400. Смотрите Допуски и Критерий остановки и Итерации и Функциональные количества.

Для optimset именем является MaxIter. См. Текущие и Устаревшие Таблицы Имени Опции.

OptimalityTolerance

Допуск завершения на оптимальности первого порядка (положительная скалярная величина). Значением по умолчанию является 1e-6. Смотрите Меру по Оптимальности Первого порядка.

Для optimset именем является TolFun. См. Текущие и Устаревшие Таблицы Имени Опции.

OutputFcn

Задайте одну или несколько пользовательских функций что оптимизация вызовы функции в каждой итерации. Передайте указатель на функцию или cell-массив указателей на функцию. Значение по умолчанию не ни один ([]). Смотрите Синтаксис Выходной функции.

PlotFcn

Строит различные меры прогресса, в то время как алгоритм выполняется; выберите из предопределенных графиков или запишите свое собственное. Передайте встроенное имя функции построения графика, указатель на функцию или массив ячеек встроенных имен функции построения графика или указателей на функцию. Для пользовательских функций построения графика передайте указатели на функцию. Значение по умолчанию не ни один ([]):

  • 'optimplotx' строит текущую точку.

  • 'optimplotfunccount' строит функциональное количество.

  • 'optimplotfval' строит значение функции.

  • 'optimplotstepsize' строит размер шага.

  • 'optimplotfirstorderopt' строит меру по оптимальности первого порядка.

Для получения информации о записи пользовательской функции построения графика смотрите Синтаксис Функции построения графика.

Для optimset именем является PlotFcns. См. Текущие и Устаревшие Таблицы Имени Опции.

SpecifyObjectiveGradient

Градиент для целевой функции задан пользователем. См. описание fun, чтобы видеть, как задать градиент в fun. Установите на true, чтобы иметь использование fminunc пользовательский градиент целевой функции. false по умолчанию заставляет fminunc оценивать градиенты с помощью конечных разностей. Необходимо обеспечить градиент и установить SpecifyObjectiveGradient на true, чтобы использовать алгоритм доверительной области. Эта опция не требуется для алгоритма квазиньютона.

Для optimset именем является GradObj, и значениями является 'on' или 'off'. См. Текущие и Устаревшие Таблицы Имени Опции.

StepTolerance

Допуск завершения на x, положительной скалярной величине. Значением по умолчанию является 1e-6. Смотрите Допуски и Критерий остановки.

Для optimset именем является TolX. См. Текущие и Устаревшие Таблицы Имени Опции.

TypicalX

Типичные значения x. Число элементов в TypicalX равно числу элементов в x0, отправной точке. Значением по умолчанию является ones(numberofvariables,1). fminunc использует TypicalX для масштабирования конечных разностей для оценки градиента.

Алгоритм trust-region использует TypicalX только для опции CheckGradients.

Алгоритм trust-region
FunctionTolerance

Допуск завершения на значении функции, положительной скалярной величине. Значением по умолчанию является 1e-6. Смотрите Допуски и Критерий остановки.

Для optimset именем является TolFun. См. Текущие и Устаревшие Таблицы Имени Опции.

HessianFcn

Если установлено в [] (значение по умолчанию), fminunc аппроксимирует Гессиан с помощью конечных разностей.

Если установлено в 'objective', fminunc использует пользовательский Гессиан для целевой функции. Гессианом является третий вывод целевой функции (см. fun).

Для optimset именем является HessFcn. См. Текущие и Устаревшие Таблицы Имени Опции.

HessianMultiplyFcn

Гессиан умножает функцию, заданную как указатель на функцию. Для крупномасштабных структурированных проблем эта функция вычисляет матричное произведение Гессиана H*Y, на самом деле не формируя H. Функция имеет форму

W = hmfun(Hinfo,Y)

то, где Hinfo содержит матрицу, раньше вычисляло H*Y.

Первый аргумент совпадает с третьим аргументом, возвращенным целевой функцией fun, например

[f,g,Hinfo] = fun(x)

Y является матрицей, которая имеет одинаковое число строк, когда существуют размерности в проблеме. Матричный W = H*Y, несмотря на то, что H не формируется явным образом. fminunc использует Hinfo, чтобы вычислить предварительный формирователь. Для получения информации о том, как предоставить значения для любых дополнительных параметров потребности hmfun, смотрите Передающие Дополнительные Параметры.

Примечание

Чтобы использовать опцию HessianMultiplyFcn, HessianFcn должен быть установлен в [].

Для примера смотрите Минимизацию с Плотным Структурированным Гессианом, Линейными Равенствами.

Для optimset именем является HessMult. См. Текущие и Устаревшие Таблицы Имени Опции.

HessPattern

Шаблон разреженности Гессиана для конечного дифференцирования. Установите HessPattern(i,j) = 1, когда у вас сможет быть ∂2fun / ∂ x(i)x(j) ≠ 0. В противном случае установите HessPattern(i,j) = 0.

Используйте HessPattern, когда это неудобно, чтобы вычислить матрицу Гессиана H в fun, но можно определить (скажите контролем), когда i th компонент градиента fun зависит от x(j). fminunc может аппроксимировать H через разреженные конечные разности (градиента), если вы обеспечиваете sparsity structure H как значение для HessPattern. Другими словами, обеспечьте местоположения ненулей.

Когда структура будет неизвестна, не устанавливайте HessPattern. Поведение по умолчанию состоит в том, как будто HessPattern является плотной матрицей из единиц. Затем fminunc вычисляет полное приближение конечной разности в каждой итерации. Это вычисление может быть дорогим для больших проблем, таким образом, обычно лучше определить структуру разреженности.

MaxPCGIter

Максимальное количество итераций предобусловленного метода сопряженных градиентов (PCG), положительной скалярной величины. Значением по умолчанию является max(1,floor(numberOfVariables/2)). Для получения дополнительной информации см. Доверительный Алгоритм области.

PrecondBandWidth

Верхняя пропускная способность предварительного формирователя для PCG, неотрицательного целого числа. По умолчанию fminunc использует предварительное создание условий диагонали (верхняя пропускная способность 0). Для некоторых проблем, увеличивая пропускную способность сокращает количество итераций PCG. Установка PrecondBandWidth к Inf использует прямую факторизацию (Холесский), а не методы сопряженных градиентов (CG). Прямая факторизация является в вычислительном отношении более дорогой, чем CG, но производит лучший качественный шаг к решению.

SubproblemAlgorithm

Определяет, как шаг итерации вычисляется. Значение по умолчанию, 'cg', делает более быстрый, но менее точный шаг, чем 'factorization'. См. fminunc Алгоритм доверительной области.

TolPCG

Допуск завершения на итерации PCG, положительной скалярной величине. Значением по умолчанию является 0.1.

Алгоритм quasi-newton
HessUpdate

Метод для выбора поискового направления в алгоритме Квазиньютона. Выбор:

ObjectiveLimit

Допуск (останавливающий критерий), который является скаляром. Если значение целевой функции в итерации меньше чем или равно ObjectiveLimit, останов итераций, потому что проблема, по-видимому, неограниченна. Значением по умолчанию является -1e20.

UseParallel

Когда true, fminunc оценивает градиенты параллельно. Отключите путем установки на значение по умолчанию, false. trust-region требует градиента в цели, таким образом, UseParallel не применяется. Смотрите Параллельные вычисления.

Пример: options = optimoptions('fminunc','SpecifyObjectiveGradient',true)

Структура задачи, заданная как структура со следующими полями:

Имя поляЗапись

objective

Целевая функция

x0

Начальная точка для x

solver

'fminunc'

options

Опции создаются с optimoptions

Самым простым способом получить структуру problem является экспорт задачи из Optimization app.

Типы данных: struct

Выходные аргументы

свернуть все

Решение, возвращенное как вектор действительных чисел или действительный массив. Размер x совпадает с размером x0. Как правило, x является локальным решением проблемы, когда exitflag положителен. Для получения информации о качестве решения смотрите, Когда Решатель Успешно выполнится.

Значение целевой функции в решении, возвращенном как вещественное число. Обычно fval = fun(x).

Обоснуйте, что остановленный fminunc, возвратился как целое число.

1

Значение градиента меньше, чем допуск OptimalityTolerance.

2

Изменение в x было меньшим, чем допуск StepTolerance.

3

Изменение в значении целевой функции было меньше, чем допуск FunctionTolerance.

5

Предсказанное уменьшение в целевой функции было меньше, чем допуск FunctionTolerance.

0

Количество итераций превысило MaxIterations, или количество функциональных оценок превысило MaxFunctionEvaluations.

-1

Алгоритм был отключен выходной функцией.

-3

Целевая функция при текущей итерации понизилась ObjectiveLimit.

Информация о процессе оптимизации, возвращенном как структура с полями:

iterations

Количество проделанных итераций

funcCount

Количество функциональных оценок

firstorderopt

Мера оптимальности первого порядка

algorithm

Алгоритм оптимизации используется

cgiterations

Общее количество итераций PCG (только алгоритм 'trust-region')

lssteplength

Размер строки ищет шаг относительно поискового направления (только алгоритм 'quasi-newton')

stepsize

Итоговое смещение в x

message

Выходное сообщение

Градиент в решении, возвращенном как вектор действительных чисел. grad дает градиент fun в точке x(:).

Аппроксимированный Гессиан, возвращенный как действительная матрица. Для значения hessian смотрите Гессиан.

Алгоритмы

свернуть все

Алгоритм квазиньютона

Алгоритм quasi-newton использует Приближенный метод ньютона BFGS с кубической процедурой поиска строки. Этот приближенный метод ньютона использует BFGS ([1], [5], [8], и [9]) формула для обновления приближения матрицы Гессиана. Можно выбрать DFP ([4], [6], и [7]) формула, которая аппроксимирует обратную матрицу Гессиана путем установки опции HessUpdate на 'dfp' (и опции Algorithm к 'quasi-newton'). Можно выбрать метод быстрейшего спуска установкой HessUpdate к 'steepdesc'Algorithm к 'quasi-newton'), несмотря на то, что эта установка обычно неэффективна. См. fminunc Алгоритм квазиньютона.

Доверительный алгоритм области

Алгоритм trust-region требует, чтобы вы предоставили градиент в fun и установили SpecifyObjectiveGradient на true с помощью optimoptions. Этот алгоритм является методом доверительной области подпространства и основан на внутреннем отражающем методе Ньютона, описанном в [2] и [3]. Каждая итерация включает приближенное решение большой линейной системы с помощью метода предобусловленных методов сопряженных градиентов (PCG). См. fminunc Алгоритм доверительной области, Методы Доверительной области для Нелинейной Минимизации и Предобусловленного Метода сопряженных градиентов.

Ссылки

[1] Broyden, C. G. “Сходимость Класса Алгоритмов Минимизации Двойного Ранга”. Журналируйте Inst. Математика. Приложение., Издание 6, 1970, стр 76–90.

[2] Коулман, T. F. и И. Ли. “Внутренний, Доверительный Подход области для Нелинейной Минимизации Согласно Границам”. SIAM Journal на Оптимизации, Издании 6, 1996, стр 418–445.

[3] Коулман, T. F. и И. Ли. “На Сходимости Отражающих Методов Ньютона для Крупномасштабной Нелинейной Минимизации Согласно Границам”. Математическое программирование, Издание 67, Номер 2, 1994, стр 189–224.

[4] Davidon, W. C. “Переменный метрический метод для минимизации”. A.E.C. Научно-исследовательский отчет, ANL-5990, 1959.

[5] Флетчер, R. “Новый Подход к Переменным Метрическим Алгоритмам”. Компьютерный Журнал, Издание 13, 1970, стр 317–322.

[6] Флетчер, R. “Практические методы оптимизации”. Издание 1, неограниченная оптимизация, Джон Вайли и сыновья, 1980.

[7] Флетчер, R. и М. Дж. Д. Пауэлл. “Быстро Конвергентный Метод Спуска для Минимизации”. Компьютерный Журнал, Издание 6, 1963, стр 163–168.

[8] Goldfarb, D. “Семейство Переменных Метрических Обновлений, Выведенных Вариационными Средствами”. Математика Вычисления, Издания 24, 1970, стр 23–26.

[9] Shanno, D. F. “Создание условий Приближенных методов ньютона для Функциональной Минимизации”. Математика Вычисления, Издания 24, 1970, стр 647–656.

Расширенные возможности

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте