у меня есть код, который выводит массив данных на каждом временном шаге, вот 2 временных шага:
My objective is to find the coordinates and value of the minimum of that hole. As you can see there are multiple local minima. I want to find the most minimal value of all this value will correspond to the finest hole (around v=0.15
) on the left of the wide hole (around v=0.35
).
I have an algorithm that uses another function to find a value to start the search for the minimum, which is f-f0
(f0
is a Gaussian), this gives me a function like this:
Сначала я нахожу значение минимума функции f-f0
, затем я использую эту координату, чтобы найти локальный минимум функции f
.
Минимум i найдите его с помощью супер простого искателя. Он состоит в том, чтобы взять это начальное значение, затем создать новый массив с левым и правым значениями, найти минимум этого массива, если минимум, который я получил, такой же, как тот, который я получил на предыдущем шаге, то это координаты минимум, если не повторять.
Этот метод позволяет мне найти закрывающий локальный минимум для начальной позиции, и поскольку он симметричен c (я добавляю одинаковое количество точек слева и справа) Я всегда получаю минимум слева от начальной позиции (ie. широкое отверстие). Однако я не хочу этого, я хочу самую глубокую дыру. Иногда самая глубокая соответствует той, которую я вычисляю (ie. Красная функция), иногда она не соответствует самой глубокой (ie. Синяя кривая).
Примечание: я делаю это в Fortran, однако, если вы не знаете Fortran, вы можете просто дать мне идею / алгоритм или записать его в python, я могу перевести его на Fortran.
Спасибо.