Я думаю, что пакет trust
, который выполняет оптимизацию области доверия, сработает.Из документации trust
видно, что
Эта функция выполняет минимизацию или максимизацию функции с использованием алгоритма области доверия ... (она принимает)Функция R, которая вычисляет значение, градиент и гессиан функции, которую нужно свернуть или развернуть, и возвращает их в виде списка со значениями компонентов, градиентом и гессианом.
На самом деле, я думаю, что она используеттот же алгоритм, который используется fminunc
.
По умолчанию fminunc
выбирает крупномасштабный алгоритм, если вы поставите градиент в забаве и установите GradObj на «on» с помощью optimset.Этот алгоритм является подпространственным методом доверительной области и основан на методе внутреннего отражения Ньютона, описанном в [2] и [3].Каждая итерация включает в себя приближенное решение большой линейной системы с использованием метода предобусловленных сопряженных градиентов (PCG).См. Алгоритм fminunc большого масштаба, Методы доверительной области для нелинейной минимизации и Метод сопряженных градиентов с предварительными условиями.