fminunc

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

Описание

Нелинейный программный решатель.

Находит минимум задачи, заданной в

minxf(x)

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

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

пример

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

Примечание

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

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

пример

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

пример

x = fminunc(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+x22-4x1+5x2.

Для этого напишите анонимную функцию fun который вычисляет цель.

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)
Local minimum found.

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

    2.2500   -4.7500

fval = -16.3750

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

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

f(x)=100(x2-x12)2+(1-x1)2,

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

f(x)=[-400(x2-x12)x1-2(1-x1)200(x2-x12)].

Код целевой функции с градиентом появляется в конце этого примера.

Создайте опции, чтобы использовать градиент целевой функции. Кроме того, установите алгоритм равным '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 value of the optimality tolerance.
x = 1×2

    1.0000    1.0000

Следующий код создает rosenbrockwithgrad функция, которая включает градиент в качестве второго выхода.

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
end

Решите ту же задачу, что и в Supply Gradient, используя структуру задачи вместо отдельных аргументов.

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

f(x)=100(x2-x12)2+(1-x1)2,

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

f(x)=[-400(x2-x12)x1-2(1-x1)200(x2-x12)].

Код целевой функции с градиентом появляется в конце этого примера.

Создайте опции, чтобы использовать градиент целевой функции. Кроме того, установите алгоритм равным '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 value of the optimality tolerance.
x = 1×2

    1.0000    1.0000

Следующий код создает rosenbrockwithgrad функция, которая включает градиент в качестве второго выхода.

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
end

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

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] = fminunc(fun,x0)
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

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

  • The 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 trust-region или fmincon trust- области reflective алгоритмов для получения дополнительной информации.

The 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'.

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

CheckGradients

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

Для optimset, имя DerivativeCheck и значения 'on' или 'off'. См. «Текущие и устаревшие имена опций».

Диагностика

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

DiffMaxChange

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

DiffMinChange

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

Display

Level of 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', не выполняет проверку. The 'on' установка отображает ошибку, когда целевая функция возвращает значение, которое complex, Inf, или NaN.

MaxFunctionEvaluations

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

Для optimset, имя MaxFunEvals. См. «Текущие и устаревшие имена опций».

MaxIterations

Максимально допустимое количество итераций, положительное целое число. Значение по умолчанию 400. См. Допуски и критерий остановки и итерации и счетчики функций.

Для optimset, имя MaxIter. См. «Текущие и устаревшие имена опций».

OptimalityTolerance

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

Для optimset, имя TolFun. См. «Текущие и устаревшие имена опций».

OutputFcn

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

PlotFcn

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

  • 'optimplotx' строит графики текущей точки.

  • 'optimplotfunccount' строит график счетчика функций.

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

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

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

Пользовательские функции построения графика используют тот же синтаксис, что и выходные функции. Смотрите Выходные функции для Optimization Toolbox™ и синтаксиса выходной функции и функции построения графика.

Для 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 для масштабирования конечных различий для оценки градиента.

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

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

Отклонение завершения функции от значения, a положительной скалярной величины. Значение по умолчанию является 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/  <reservedrangesplaceholder0>x(j)  ≠ 0. В противном случае задайте HessPattern(i,j) = 0.

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

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

MaxPCGIter

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

PrecondBandWidth

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

SubproblemAlgorithm

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

TolPCG

Допуск завершения на итерации PCG, a положительной скалярной величины. Значение по умолчанию является 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

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

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

свернуть все

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

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

Причина fminunc stop, возвращается как целое число.

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, см. Гессиан Выхода.

Алгоритмы

свернуть все

Алгоритм Квази-Ньютона

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

Алгоритм доверительной области

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

Альтернативная функциональность

Приложение

Задача Optimize Live Editor обеспечивает визуальный интерфейс для fminunc.

Ссылки

[1] Broyden, C. G. «Сходимость класса алгоритмов минимизации двойного ранга». Journal Inst. Math. Applic., Vol. 6, 1970, pp. 76-90.

[2] Коулман, Т. Ф. и Я. Ли. Подход внутренней доверительной области для нелинейной минимизации с учетом границ. SIAM Journal on Optimization, Vol. 6, 1996, pp. 418-445.

[3] Коулман, Т. Ф. и Я. Ли. «О сходимости отражающих методов Ньютона для крупномасштабной нелинейной минимизации, подверженной границам». Математическое программирование, том 67, номер 2, 1994, стр. 189-224.

[4] Davidon, W. C. «Переменный метрический метод минимизации». A.E.C. Доклад о научных исследованиях и разработках, ANL-5990, 1959 год.

[5] Fletcher, R. «Новый подход к переменным метрическим алгоритмам». Computer Journal, Vol. 13, 1970, pp. 317-322.

[6] Fletcher, R. «Практические методы оптимизации». Том 1, Оптимизация без ограничений, Джон Уайли и сыновья, 1980.

[7] Флетчер, Р. и М. Дж. Д. Пауэлл. «Быстро сходящийся метод спуска для минимизации». Computer Journal, Vol. 6, 1963, pp. 163-168.

[8] Goldfarb, D. «A Family of Variable Metric Updates Derived by Variational Means». Математика вычислений, том 24, 1970, стр. 23-26.

[9] Shanno, D. F. «Conditioning of Quasi-Newton Methods for Function Minimization». Математика вычислений, том 24, 1970, стр. 647-656.

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

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