Как использовать scipy.optimize.basinhopping и scipy.optimize.minimum?
Я уже прочитал документацию для обоих, но я все еще не уверен, как их использовать (я беру вступительный класс CS для Python, поэтому я не очень знаком с программированием). Может ли кто-нибудь привести несколько простых примеров того, как может выглядеть код?
Например, как бы я использовал прыжок в бассейне, чтобы найти минимум уравнения с двумя переменными, такими как f(x,y) = x^2*y^2 + cos(x)*sin(y) с x и y в диапазон -5 <х, у <5?
И для минимизации, как я могу найти минимум чего-то вроде f(x) = x^3 - cos(2*pi*x)?
Пожалуйста, сделайте примеры максимально простыми! (Я действительно не понимал код в документации вообще, я не думаю, что мы изучили scipy так глубоко)
Вот несколько примеров того, что я пробовал до сих пор:
Basinhopping:
import numpy as np
import scipy.optimize as spo
def f(xy): #(I don't know what to do for x and y here)
return x**2*y**2+np.cos(x)*np.sin(y)
guess = np.array(-5,5)
result = spo.basinhopping(f, guess)
print(result)
Минимизировать:
def g(x):
return x**2 - np.cos(2*np.pi*x)
result2 = spo.minimize(g)
print(result2)