Próbuję użyć funkcji scipy.optimize
, aby znaleźć globalne minimum skomplikowanej funkcji z kilkoma argumentami. scipy.optimize.minimize
wydaje się wykonywać najlepszą pracę, mianowicie metodę "Nelder-Mead". Ma jednak tendencję do korzystania z obszarów z obszarów argumentów (aby przypisać wartości ujemne do argumentów, które mogą być tylko dodatnie), a tym samym zwraca błąd w takich przypadkach. Czy istnieje sposób, aby ograniczyć granice argumentów w ramach samej scipy.optimize.minimize
funkcji? A może w ramach innych funkcji scipy.optimize
?Scipy.optimize: jak ograniczyć wartości argumentów
Znalazłem następujące informacje:
Gdy parametry wypaść z dopuszczalnym zakresie, powrót dziko ogromną liczbę (daleko od danych, które mają być zamontowane). To (miejmy nadzieję) będzie karać ten wybór parametrów tak bardzo, że
curve_fit
ustali się na jakimś innym dopuszczalnym zbiorze parametrów jako optymalnym.
given in this previous answer, ale procedura zajmie w moim przypadku dużo czasu obliczeniowego.
Włączenie funkcji kosztowej przy dużym koszcie, gdy wartości wejściowe znajdują się poza dopuszczalnym zakresem, jest bardzo złym pomysłem, ponieważ funkcja wyszukiwania zużyje większość energii na przeszukiwanie nieskończonej wielkości niekompletnych odpowiedzi.Użyj argumentu 'constraint' z' scipy.minimize', aby określić metodę, która wskaże algorytmowi, gdzie ograniczyć wyszukiwanie. szukaj "ograniczeń" tutaj: http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimize –