У меня довольно большая программа, которая решает проблему оптимизации. Я использую fminunc
для этой цели. Однако по какой-то причине, когда достигнуто максимальное количество итераций и функция должна возвращать ее, она буквально застревает. Я попытался следовать некоторым советам, в которых, по сути, используется вложенная функция, чтобы избежать динамического размещения и т. Д. (Я загружал из файла каждый раз, когда вызывалась функция cost).
Но, похоже, это не решает проблему.
Есть ли что-то более конкретное, о чем я должен знать? Как какая-то известная проблема, о которой я, возможно, сейчас не знаю.
Спасибо.
(Дайте мне знать, какие подробности я могу опубликовать).
Дополнительная информация:
Выходной файл должен быть массивом 15876 двойных, ОЗУ 32 ГБ. Фактическая настройка:
option = optimoptions(@fminunc,...
'Display','iter','GradObj','on','MaxIter',10,...
'ObjectiveLimit',10e-10,'Algorithm','quasi-newton');
Я установил низкое количество итераций, просто чтобы проверить, возможно ли это так, количество итераций было проблемой, но, похоже, это не так. Вывод, который я получаю:
Solver stopped prematurely.
fminunc stopped because it exceeded the iteration limit,
options.MaxIterations = 10 (the selected value)
Но оно не возвращается.