Začněte nyníZačněte zdarma

Najdi globální optimum

Máš k dispozici následující problém maximalizace zisku a tvým úkolem je najít globální maximum.

\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)

\(0\) je přirozená dolní mez pro množství a při \(q=30\) je zisk záporný, takže \(30\) je dobrý kandidát na horní mez.

Najdi globální optimum tohoto problému.

Funkce basinhopping je již naimportována.

Toto cvičení je součástí kurzu

Introduction to Optimization in Python

Zobrazit kurz

Pokyny k cvičení

  • Definuj slovník kwargs s klíčovými argumenty, kde meze jsou \(0\) a \(30\).
  • Spusť basinhopping s účelovou funkcí jako zápornou hodnotou profit a počátečním odhadem x0 předaným minimalizátoru kwargs.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

def profit(q): 
	return -q**4 / 4 + 11 * q**3 - 160 * q**2 + 900 * q
  
x0 = 0

# Define the keyword arguments for bounds
kwargs = {"bounds": [(____, ____)]} 

# Run basinhopping to find the optimal quantity
result = basinhopping(____ q: -profit(q), ____, ____=kwargs)

print(f"{result.message}")
print(f"The maximum according to basinhopping(x0={x0}) is at {result.x[0]:.2f}\n")
Upravit a spustit kód