Черные точки - экспериментальные точки данных. В этом случае они взяты из кривой IV в солнечном элементе, но в принципе это не имеет значения.
Моя цель состоит в том, чтобы подогнать эту кривую с помощью симуляции, которая имеет определенные входные параметры (приблизительно около 5). После моего первоначального предположения (синего цвета) я могу получить «качество» подгонки (что в основном составляет квадрат ошибка χ² от точек данных до подгонки). Но так как это симуляция, а функция no analyti c , я не получаю градиент (вектор производных по всем входным параметрам) для оптимизации этого χ².
Более того, это бесполезно для численного аппроксимации этого градиента, так как оценка χ² для нового набора параметров занимает неоправданно много времени.
Или вкратце: мне нужен оптимизатор без градиента, который оптимизирует подгонку ( вероятно, минимизируя χ²) и используя как можно меньше новых оценок.
Я уже попробовал метод downhill-simplex-by от Nelder и Mead , но он занимает довольно много
Я читал, что NEWUOA от Пауэлла , как говорят, сходятся довольно быстро с меньшим количеством функциональных оценок. Есть ли реализация для C#
?