Pull to refresh

Comments 7

Вы уверены, что нашли глобальные минимумы?
Нет. Смотрите сюда, где написано, что глобальные максимумы/минимумы ищутся c помощью:

Global (brute-force) optimization routines (e.g. basinhopping, differential_evolution)

А minimize использует (см. Вашу же ссылку)

one of BFGS, L-BFGS-B, SLSQP, depending if the problem has constraints or bounds.

которые используют (численно вычисляемые) градиенты, якобианы и пр., т.е. ищут локальные максимумы/минимумы.

Другое дело, что могут быть посторонние соображения, что минимум/максимум в задаче единственный, или что начальное положение близко к глобальному экстремуму.
Диапазон давлений задан -1-64.
Стартовые точки поиска x0 заданы.
Целевая функция этим ограничена и не имеет разрывов.
В указанных условия возможен только один минимум
при числовом методе его поиска !!!..
Во 2ой ссылке дано аналитическое решение, дающее глобальный минимум:
x(i+1) = x(i) * c, где с = (P_конечное / P_начальное) ^ (1/n) (краевые условия x(0) = P_начальное, x(n) = P_конечное).
Доказывается в несколько строк (от противного):

Заметим, что надо минимизировать E = T * ( (x(1) / x(0) — 1) + (x(2) / x(1) — 1) +… + (x(n) / x(n-1) — 1), где T = m * R * T * gammma / (gamma -1) не зависит от x, т.е. достаточно искать минимум F(x) = x(1) / x(0) + x(2) / x(1) +… + x(n) / x(n-1)

Пусть x(0), x(1),…, x(n) — оптимальный набор
Если существует i: sqrt(x(i) * x(i+2)) != x(i+1), то набор
x(0), x(1),…, x(i), sqrt(x(i) * x(i+2)), x(i+2),… x(n) выгоднее, чем
x(0), x(1),…, x(i), x(i+1), x(i+2),… x(n) (что является противоречием).

Почему выгоднее? Потому что выражение y/A + B/y >= 2*sqrt(y/A * B/y) = 2sqrt(A*B) достигает минимума при y = sqrt(A * B) (здесь A = x(i), y = x(i+1), B=x(i+2)).
Т.е. в оптимальном решении sqrt(x(i) * x(i+2)) == x(i+1), или же x(i+1)/x(i) == x(i+2)/x(i+1).

Непонятно, зачем автор впихнул сюда scipy и зачем ему (или злому модеру) было тереть предыдущий мой комент.
Ага, тоже только что в Maple проверил. Надо бы еще проверить, не может ли эта величина c формально быть отрицательной при четном/нечетном количестве ступеней? Чтобы последовательность давления была типа +2, -4, +8, -16… А что, автор же unconstrained минимизацию использует? :)
Sign up to leave a comment.

Articles